1.概述
主要是一些MySQL操作的优化,以及建议
2.建表语句
- 数据库要满足基本范式;
- 选择合适的数据类型:尽量定长;
- 不要使用无法加索引的类型作为关键字段,比如text类型;
- 为了避免联表查询,有时候可以适当的数据冗余,比如邮箱、姓名这些不容易更改的数据;
- 选择合适的表引擎,有时候合MySAM适和,有时InnoDB适合;
- 最好每个表都建立有auto_increment字段,建立合适的数据库索引以保证查询性能;
- 最好给每个字段设定default值。
3.SQL 查询
-
操作符号:
NOT IN
操作符此操作是强列推荐不使用的
,因为它不能应用表的索引。
推荐方案:用NOT EXISTS
或(外连接+判断为空)方案代替"IS NULL", "<>", "!=", "!>", "!<", "NOT", "NOT EXISTS", "NOT IN", "NOT LIKE", "LIKE '%500'"
,因为他们不走索引全是表扫描。NOT IN会多次扫描表,使用EXISTS、NOT EXISTS、IN、LEFT OUTER JOIN
来替代,特别是左连接,而Exists比IN更快,最慢的是NOT操作。 如果列的值含有空,以前它的索引不