mysql查询优化(持续更新中)

1、        索引不会包含有NULL值的列

(1)   应尽量避免在where子句中对字段进行null值判断,否则将导致引擎放弃使用索引而进行全表扫描

(2)   数据库设计时不要让字段的默认值为null,可以设置为0

2、        like语句操作

一般情况下不鼓励使用like操作,如果非使用不可,如何使用也是一个问题。like “%aaa%” 不会使用索引而like “aaa%”可以使用索引。

3、        不要在where子句上进行表达式操作运算

例如:select * from users where YEAR(adddate)<2007,将在每个行上进行运算,这将导致索引失效而进行全表扫描,因此我们可以改成:select * from users where adddate<’2007-01-01′

4、        任何地方都不要使用 select * from t ,用具体的字段列表代替“*

(1)      不要返回用不到的任何字段

(2)      数据库会混淆,需要先Query Table Metadata For Columns

原文地址:https://www.cnblogs.com/dudumiaomiao/p/5793639.html