mysql 设计优化及性能调优
2017-07-09 22:23
441 查看
每个字段都有默认值,not null , 便于索引及查询性能
尽量使用数值型字段,若只包含数值信息的字段尽量不要设计为字符型
不要使用外键
一张表的列不宜过多40以内,索引小于6个
添加索引–where条件查询经常使用的字段;字段值重复率低;连接字段上;小字段上,如果字段太长取字段的前50字符建索引
尽量少使用函数,因为函数值属于变量,可能不会走索引
模糊查询时右通配会走索引 hu% , 左右通配%hu%会逐个比较
避免让mysql执行自动类型转换,因为可能会导致索引不起作用。例如字段id设置为varchar (实际存储均为数字) , 查询为 select * from table where id>1;
用explain解析你的查询并优化
使用limit 1 取得唯一行
尽量避免select * , 因为mysql需要将* 转为表所有列,耗费性能,一般只查询需要的字段
使用procedure analyse() 中获得建议
ip存储为无符号整型
使用enum , 因为enum在mysql中为数值型
固定长度的表会更快
尽量使用单字段索引代替复合索引
复合索引的几个字段是否经常and方式出现在where子句中,单字段查询是否极少甚至没有,如果是,使用复合索引,否则为单索引
如果复合索引的字段经常出现在where 中,则分解为多个索引
如果复合索引字段超过3个,那么考虑其必要性
如果既有几个字段组成的复合索引,又有单索引,一般可以删除复合索引
删除无用的索引,避免影响执行计划
开发中禁用视图,存储过程,,触发器等
对sql操作事务进行超时设置,防止长时间占有表对效率造成影响
尽量使用数值型字段,若只包含数值信息的字段尽量不要设计为字符型
不要使用外键
一张表的列不宜过多40以内,索引小于6个
添加索引–where条件查询经常使用的字段;字段值重复率低;连接字段上;小字段上,如果字段太长取字段的前50字符建索引
尽量少使用函数,因为函数值属于变量,可能不会走索引
模糊查询时右通配会走索引 hu% , 左右通配%hu%会逐个比较
避免让mysql执行自动类型转换,因为可能会导致索引不起作用。例如字段id设置为varchar (实际存储均为数字) , 查询为 select * from table where id>1;
用explain解析你的查询并优化
使用limit 1 取得唯一行
尽量避免select * , 因为mysql需要将* 转为表所有列,耗费性能,一般只查询需要的字段
使用procedure analyse() 中获得建议
ip存储为无符号整型
使用enum , 因为enum在mysql中为数值型
固定长度的表会更快
尽量使用单字段索引代替复合索引
复合索引的几个字段是否经常and方式出现在where子句中,单字段查询是否极少甚至没有,如果是,使用复合索引,否则为单索引
如果复合索引的字段经常出现在where 中,则分解为多个索引
如果复合索引字段超过3个,那么考虑其必要性
如果既有几个字段组成的复合索引,又有单索引,一般可以删除复合索引
删除无用的索引,避免影响执行计划
开发中禁用视图,存储过程,,触发器等
对sql操作事务进行超时设置,防止长时间占有表对效率造成影响
相关文章推荐
- 性能优化之MySQL调优篇
- MYSQL性能优化之Mysql数据库高可用架构设计之MHA架构设计(下)
- 性能调优之MYSQL高并发优化下
- 二十种实战调优MySQL性能优化的经验
- 性能调优之mysql通过status性能优化 3
- MySQL架构优化实战系列2:主从复制同步与查询性能调优
- MYSQL性能优化之Mysql数据库结构设计
- 性能调优之MYSQL高并发优化
- MySQL架构设计及性能优化
- mysql设计规范之性能优化
- Mysql性能优化-数据库设计
- 【Mysql性能优化四】数据表的设计和读写分离技术
- MySQL设计规范与性能优化
- 系统性能调优(2)----数据库设计优化
- 性能调优之mysql通过status性能优化 4
- MySQL架构优化实战系列2:主从复制同步与查询性能调优
- 系统性能调优(2)----数据库设计优化
- MySQL性能优化与架构设计
- 性能调优之mysql通过status性能优化 1
- mysql性能优化笔记(1) 建表原则和字段设计