本文共 1020 字,大约阅读时间需要 3 分钟。
MySQL优化案例
原SQL语句(没有任何修饰):SELECT uid FROM user WHERE mo=13725525225 LIMIT 0,1;在WHERE查询条件后mo字段添加索引-->给mo字段添加索引查看数据库字段数据结构,发现mo字段定义的是char数据类型。而传入的类型为int型,发生了隐式转换。
原SQL语句:开发中常见的开发sql语句SELECT * FROM uyerWHERE sellerId = 765922982AND gmt_modified >= '1970-01-01 08:00:00'AND gmt_modified <= '2013-06-05 17:11:31'LIMIT 255000,5000;MySQL在进行上述翻页写法,在越往后的过程中速度越慢。原因MySQL会读取表中的前M+N数据,M越大,性能越差。优化后SQL语句:SELECT t1.* FROM uyer t1,(select id from uyer sellerid=100 limit 100000,5000) t2WHERE t1.id=t2.id;在t表中sellerid字段添加索引,id为表的主键。
原SQL语句:SELECT first_nameFROM employeesWHERE emp_no IN (SELECT emp_no FROM salariy_2000 WHERE salary = 5000);MySQL处理逻辑:遍历employees的每一条记录,代入到子查询中去查询。改写子查询:SELECT first_nameFROM employees emp,(SELECT emp_no FROM salariy_2000 WHERE salary = 5000) salWHERE emp.emp_no = sal.emp_no;
转载地址:http://vqkdm.baihongyu.com/