为什么80%的码农都做不了架构师?>>>
1. 在表中建立索引,优先考虑where、group by使用到的字段。
2. 尽量避免使用select *,返回无用的字段会降低查询效率。
3. 尽量避免使用以下语法,导致数据库引擎放弃索引扫描而进行全表扫描。
- in 和not in 例如:in(1,2,3),如果是连续的数值,可以用between 1 and 3。如果是子查询可以改为:select XXX from table1 where exists (select ...)
- or 可以用union代替or。
- 字段开头的模糊查询,例如: WHERE username LIKE '%li%' 尽量在字段后面使用模糊查询。如 :WHERE username LIKE 'li%'
- null值判断 。可以将null值列的默认值设为0,进行是否为0的判断
- where条件中等号的左侧进行表达式、函数运算。例如: WHERE sale/10 = 9 或者 WHERE SUBSTR(username,1,2) = “li”。可以改为 WHERE sale = 9 *10 或者 WHERE username LIKE 'li%'
- 避免使用where 1=1的条件