MySQL优化总结

来源:互联网 发布:php java python 编辑:程序博客网 时间:2024/05/30 20:07

表设计方面:

1、字段名尽量简化,不要超过18个字符

2、使用尽量小的数据类型,例如:MEDIUMINT比INT少占用25%空间

3、字段类型应尽量避免设置成可变长度,如:VARCHAR、BLOB、TEXT

4、用于比较的不同字段,应设置相同的类型及长度

5、尽可能将字段声明为NOT NULL

6、主索引尽可能短

7、仅创建真正用到的索引(索引会减慢存储数据的速度)

8、如果一个字符串类型字段有唯一前缀,可以使用这个前缀作为索引。如前缀为1个字符,则可以这样设置索引 INDEX( text( 1 ) )

9、可以把经常扫描的表拆分为两个表

 

查询方面:

1、WHERE条件的优化:去掉不必要的括号;常量合并;常量状态清除

2、更新频繁的MyISAM表中,尽量避免复杂的SELECT查询

其他方面:

1、清空表使用TRUNCATE TABLE tablename 比 DELETE FROM tablename 快

2、INSERT时,只有在要插入数值与默认数值不同时才执行插入操作

3、一次插入多行时,尽量使用多个VALUES列表的INSERT语句

4、从表中删除大量行后,运行OPTIMIZE TABLE tablename 进行碎片整理

5、使用ANALYZE TABLE tablename 更新索引分布