MySQL 索引优化原则
时间:2021-07-01 10:21:17
帮助过:30人阅读
SELECT username FROM user WHERE signup_date >=
CURDATE() 无法使用cache
2 SELECT username FROM user WHERE signup_date >= ‘2017-05-06‘ 可以cache
当使用了MySQL的一写函数之后,MySQL无法确定结果是易变的,所以不会cache,还有now(),rand()
也一样不开启cache
8、join 语法,尽量将小的表放在前面,在需要on的字段上,数据类型保持一致,并设置对应的索引,否则MySQL无法使用索引来join查询
9、在大表上做大量更新时,如果会锁全表,则需要拆分执行,避免长时间锁住表,导致其他请求积累太多(InnoDB 支持行锁,但前提是Where子句需要建立索引,没有索引也一样是锁全表)
1 while (1) {
2 //每次只做1000条
3 mysql_query("DELETE FROM logs WHERE log_date <= ‘2009-11-01‘ LIMIT 1000");
4 if (mysql_affected_rows() == 0) {
5 // 没得可删了,退出!
6 break;
7 }
8 // 每次都要休息一会儿
9 usleep(50000);
10 }
MySQL 索引优化原则
标签:很多 没有 delete 无法 否则 请求 break bsp 避免