(22)禁止使用 INSERT INTO t_xxx VALUES(xxx),必须显示指定插入的列属性
容易在增加或者删除字段后出现程序 BUG (23)禁止使用属性隐式转换
SELECT uid FROM t_user WHERE phone=13812345678
会导致全表扫描,而不能命中 phone 索引
(24)避免在 WHERE 条件的属性上使用函数或者表达式
SELECT uid FROM t_user WHERE from_unixtime(day)>='2017-02-15'
会导致全表扫描正确的写法是:
SELECT uid FROM t_user WHERE day>= unix_timestamp(‘2017-02-15 00:00:00')
(25)避免负向查询,禁止%开头的模糊查询
a)负向查询条件:NOT、!=、<>、!<、!>、NOT IN、NOT LIKE 等,会导致全表扫描
b)%开头的模糊查询,会导致全表扫描 (26)避免大表使用 JOIN 查询及子查询
会产生临时表,消耗较多内存与 CPU,极大影响数据库性能 (27)避免使用 OR 条件,尽量改为 IN 查询
旧版本 Mysql 的 OR 查询是不能命中索引的,即使能命中索引,数据库也需要耗费更多的 CPU 帮助实施查询优化 (28)应用程序必须捕获 SQL 异常,并有相应处理
希望本文所述对大家PHP程序设计有所帮助。