这两天正在看高性能MySQL,对于当前知识的一个完善,所以只是一些零星的知识点,并不是系统的总结,希望对看到的朋友有所帮助,一起成长!1.更小的通常更好 尽量使用可以正确存储数据的最小数据类型,更小的数据类型通常更快,因为它占用更少的磁盘、内存和CPU缓存,处理时需要的CPU周期也更少2.简单就好 简单的类型需要更少的CPU周期,比如:整型比字符操作代价更低,因为字符集和校对规则是字符比较比整型比较更复杂3.尽量避...
GROUP_CONCAT 函数返回一个字符串结果,该结果由分组中的值连接组合而成,常和 GROUP BY 连用。如果需要自定义分隔符可以使用 SEPARATOR。示例:SELECT GROUP_CONCAT(id) ids FROM sys_oem_resources WHERE pid IS NOT NULL GROUP BY pid; SELECT GROUP_CONCAT(id SEPARATOR ‘*‘) ids FROM sys_oem_resources WHERE pid IS NOT NULL GROUP BY pid; 注意示例:别乱用 GROUP_CONCAT,说不定你现在使用的 GROUP_CONCAT 得到的结果就...
MySQL5.5 升级到MySQL5.6的注意事项1、如果表有时间字段,在升级之后该表必须rebuild一次,才能执行online ddl.https://dev.mysql.com/doc/refman/5.6/en/upgrading-from-previous-series.html解决方法: mysql>alter table table_name force; #会锁表或者使用pt工具,优势在于不锁表,另外共有云上环境也能使用pt-tools工具# pt-online-schema-change --no-version-check --no-drop-old-table --execute --print --alter "force"...
1.1. 下载:我下载的是64位系统的zip包:下载地址:https://dev.mysql.com/downloads/mysql/下载zip的包: 下载后解压:D:\软件安装包\mysql-5.7.20-winx641.2. 配置环境变量:变量名:MYSQL_HOME变量值:E:\mysql-5.7.20-winx64path里添加:%MYSQL_HOME%\bin; 1.3. 生成data文件:以管理员身份运行cmd进入E:\mysql-5.7.20-winx64\bin 下执行命令:mysqld --initialize-insecure --user=mysql 在E:\mysql-5.7.20-winx64目录下生成...
在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:代码如下:
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL ); 我们随机向里面插入了10000条记录,其中有一条:5555, admin。在查找username="admin"的记录 SELECT * FROM mytable WHERE username=‘admin‘;时,如果在username上已经建立了索引,MySQL无须任何扫描,即准确可找到该记录。相反,MySQL会扫描所有记...
1BEGIN 2 #Routine body goes here...3/* 4update szzx_goods_common set gc_id=i where gc_name=(SELECT gc_name from szzx_goods_class where gc_id=i);5*/ 6DECLARE i,goodsid int(11);7declare goodsname,img varCHAR(200);8set i=104;9WHILE i<1815 do
10SELECT image_url,goods_id into img,goodsid from goods_image where image_id=i;
11 #SELECT goods_id into goodsid from ecm_goods_image where imgage_id=i;
...
1) redo和undo的藕断丝连 前滚redo 回滚undo undo受到redo的保护,以便历经前滚后在buffer cache中得到undo,并将这些undo运用到buffer cache里的数据块和索引块上,使那些数据文件能赶上数据库的其余部分,从而保持数据库的一致性。 二者是DBA和开发人员的桥1) redo和undo的“藕断丝连”前滚redo回滚undoundo受到redo的保护,以便历经前滚后在buffer cache中得到undo,并将这些undo运用到buffer cache里的数据块和索引块...
undo受到redo的保护,以便历经前滚后在buffer cache中得到undo,并将这些undo运用到buffer cache里的数据块和索引块上,使那些数 1) redo和undo的“藕断丝连”
前滚redo
回滚undo
undo受到redo的保护,以便历经前滚后在buffer cache中得到undo,并将这些undo运用到buffer cache里的数据块和索引块上,使那些数据文件能“赶上”数据库的其余部分,从而保持数据库的一致性。
二者是DBA和开发人员的桥梁
回滚过程绝不涉及重做日志,只...
mysql在查询字符串时是大小写不敏感的,在编绎mysql时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象,比较应急的方法是对于包含中文的字段加上binary属性,使之作二进制比较mysql中文排序方法1 mysql在查询字符串时是大小写不敏感的,在编绎mysql时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象,比较应急的方法是对于包含中文的字段加上...
先左关联后在过滤假如关联的结果里面B.b3=null那么你在where后面在加B.b3=2那么结果中B.b3肯定是没有null的情况的,也就是说用+进行左关联没有用leftjoin灵活待后续看是否有什么好的解决方案1and和where的滥用用的时候请多注意 下面的三段代码的效果肯定是不一样的 (1) 代码如下:selectA.a1,B.b3 fromAleftjoinB onA.a2=B.b2 whereA.a3=1 andB.b3=2 先左关联后在过滤假如关联的结果里面B.b3=null那么你在where后面在加B.b3=2那么结...
将数据从MySQL迁移到Oracle的注意事项1.自动增长的数据类型处理MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记)INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL2. 单引号的...
在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心, mysql已经为我们提供了这样一个功能。 SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须 是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回 记录行的最大数目。初始记...
在操作数据库的时候,需要我们对mysql进行优化处理,本篇讲讲有优化的注意事项。第一点,硬件太老硬件我们这里主要从CPU、内存、磁盘三个方面来说下,还有一些因素比如网卡,机房网络等因为文章篇幅关系,就不一一介绍了,以后还有机会可以聊。首先我们来看下MySQL对CPU的利用特点:5.1可以利用4个核,5.5可以利用到24个核,5.6可以利用到64个核比如MySQL5.6能用到48个CORE以上,跑得好的,64个CORE都能用到(48CORE-64CORE之间,官...
前几天就在工作中发现这样一个问题:当某个字段的类型为varchar时,字段保存的值类似'100,200,300' 和 '100' 或 '100,400'。写SQL语句的时候就会犯这样的错误,例如:select id,provinceid from admin where provinceid in (100);select id,provinceid from admin where provinceid in (100); 会发现上面2条SQL的查询结果并不相同,正确的SQL是第2条。因为字段保存的值类似100,200,300,并不是100,200,300这样的值,所以第...
在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心, mysql已经为我们提供了这样一个功能。 SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须 是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回 记录行的最大数目。初始记...