[TOC] ## 查看性能情况 `explain sql 语句` ``` type 字段介绍: system、const:可以将查询的变量转为常量。如id=1; id为主键或唯一键. eq_ref:访问索引,返回某单一行的数据。(通常在联接时出现,查询使用的索引为主键或惟一键)。 ref:访问索引,返回某个值的数据.(可以返回多行) 通常使用=时发生 range:这个连接类型使用索引返回一个范围中的行,比如使用>或<查找东西,并且该字段上建有索引时发生的情况(注:不一定好于index)。 index:以索引的顺序进行全表扫描,优点是不用排序,缺点是还要全表扫描。 ALL:全表扫描,应该尽量避免。 ``` ## 字段说明 1. 所有字段 最好为 不为空 2. 数字字段,默认值最好为0而不是空 3. 字符串字段最好为`''` (空)而不是`null` ### 字段 - tinyint 如果一个数在0-255之间, 使用`tinyint` `tinyint(3)` 并不是指字段长度为3,而是指填充长度,需要配合`zerofill`进行0 填充 如`tinyint(3)` 的值为`1` 时 数据库纯存入为`001` - varchar 或 char ## sql 语句优化 ### 尽量去掉 in 与 or ``` select count(*) from stuff where id_no in('0','1') //可以考虑将or子句分开: select count(*) from stuff where id_no='0' select count(*) from stuff where id_no='1' ```