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