有助于效率的数据类型
1、尽可能地使用最有效(最小)的数据类型
例如,MEDIUMINT经常比INT好一些。
2、使用定长列,不使用可变长列
例如,应该选择 CHAR 列而不选择 VARCHAR 列,当能也得根据存储引擎,使用定长行将比使用可变长的行
处理快得多。
3、将列定义为 NOT NULL
这样处理更快,所需空间更少。而且有时还能简化查询,因为不需要检查是否存在特例 NULL。
4、考虑使用 ENUM 列
如果有一个只含有限数目的特定值的列,那么应该考虑将其转换为 ENUM列。
ENUM 列的值可以更快地处理,因为它们在内部是以数值表示。
5、散列索引对 BLOB 列特别有用,将 BLOB 值隔离在一个独立的表中。
索引建立原则
1、一般针对数据分散的关键字进行建立索引,比如ID、QQ,像性别、状态值等等建立索引没有意义
2、尽量使用短索引,一般对int、char/varchar、date/time 等类型的字段建立索引
3、需要的时候建立联合索引,但是要注意查询SQL语句的编写
4、谨慎建立 unique 类型的索引(唯一索引)
5、一般建议每条记录最好有一个能快速定位的独一无二定位的唯一标示(索引)
6、不要过度索引,单表建立的索引不要超过5个,否则更新索引将很耗时
7、如果很可能一个索引在头几个字符上有唯一的前缀,仅仅索引该前缀比较好
1、尽可能地使用最有效(最小)的数据类型
例如,MEDIUMINT经常比INT好一些。
2、使用定长列,不使用可变长列
例如,应该选择 CHAR 列而不选择 VARCHAR 列,当能也得根据存储引擎,使用定长行将比使用可变长的行
处理快得多。
3、将列定义为 NOT NULL
这样处理更快,所需空间更少。而且有时还能简化查询,因为不需要检查是否存在特例 NULL。
4、考虑使用 ENUM 列
如果有一个只含有限数目的特定值的列,那么应该考虑将其转换为 ENUM列。
ENUM 列的值可以更快地处理,因为它们在内部是以数值表示。
5、散列索引对 BLOB 列特别有用,将 BLOB 值隔离在一个独立的表中。
索引建立原则
1、一般针对数据分散的关键字进行建立索引,比如ID、QQ,像性别、状态值等等建立索引没有意义
2、尽量使用短索引,一般对int、char/varchar、date/time 等类型的字段建立索引
3、需要的时候建立联合索引,但是要注意查询SQL语句的编写
4、谨慎建立 unique 类型的索引(唯一索引)
5、一般建议每条记录最好有一个能快速定位的独一无二定位的唯一标示(索引)
6、不要过度索引,单表建立的索引不要超过5个,否则更新索引将很耗时
7、如果很可能一个索引在头几个字符上有唯一的前缀,仅仅索引该前缀比较好