数据库性能优化
2017-03-14 14:17
197 查看
字段设计
尽量使用数字型,比字符型快;如果0-200,使用tinyint unsigned更好
尽量不要使用NULL,除非必要使用NOT NULL + DEFAULT替代
少用text和image,二进制字段的读写比较慢
使用int代替varchar(15)来存储IP地址
使用MySQL内建的类型(date,time,datetime等)而不是字符串来存储日期和时间
建议只分配真正需要的空间
考虑使用BIGINT代替DECIMAL,将需要存储的值根据小数的位数乘以相应的倍数即可
sql优化
explain优化sql
limit获取唯一行,避免扫描整张表
避免使用select*
保证连接的索引是相同的类型
不要使用by rand()命令
采用join来替换子查询
小心使用通配符
索引
根据使用频率决定哪些字段需要建立索引,选择经常作为连接条件、筛选条件、聚合查询、排序的字段作为索引的候选字段。
把经常一起出现的字段组合在一起,组成组合索引,组合索引的字段顺序与主键一样,也需要把最常用的字段放在前面,把重复率低的字段放在前面。
一个表不要加太多索引,因为索引影响插入和更新的速度。
其他:
MyISAM和InnoDB的选择
MyISAM不支持事务,InnoDB是事务类型的存储引擎
MyISAM只支持表级锁,BDB支持页级锁和表级锁默认为页级锁,而InnoDB支持行级锁和表级锁默认为行级锁
MyISAM引擎不支持外键,InnoDB支持外键
MyISAM引擎的表在大量高并发的读写下会经常出现表损坏的情况
对于count()查询来说MyISAM更有优势;InnoDB是为处理巨大数据量时的最大性能设计,它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。
http://ms.csdn.net/geek/94980
http://ms.csdn.net/geek/90776
http://ms.csdn.net/geek/92008
http://www.cnblogs.com/easypass/archive/2010/12/08/1900127.html
http://www.mahaixiang.cn/znseo/820.html
http://www.2cto.com/database/201404/291438.html
尽量使用数字型,比字符型快;如果0-200,使用tinyint unsigned更好
尽量不要使用NULL,除非必要使用NOT NULL + DEFAULT替代
少用text和image,二进制字段的读写比较慢
使用int代替varchar(15)来存储IP地址
使用MySQL内建的类型(date,time,datetime等)而不是字符串来存储日期和时间
建议只分配真正需要的空间
考虑使用BIGINT代替DECIMAL,将需要存储的值根据小数的位数乘以相应的倍数即可
sql优化
explain优化sql
limit获取唯一行,避免扫描整张表
避免使用select*
保证连接的索引是相同的类型
不要使用by rand()命令
采用join来替换子查询
小心使用通配符
索引
根据使用频率决定哪些字段需要建立索引,选择经常作为连接条件、筛选条件、聚合查询、排序的字段作为索引的候选字段。
把经常一起出现的字段组合在一起,组成组合索引,组合索引的字段顺序与主键一样,也需要把最常用的字段放在前面,把重复率低的字段放在前面。
一个表不要加太多索引,因为索引影响插入和更新的速度。
其他:
MyISAM和InnoDB的选择
MyISAM不支持事务,InnoDB是事务类型的存储引擎
MyISAM只支持表级锁,BDB支持页级锁和表级锁默认为页级锁,而InnoDB支持行级锁和表级锁默认为行级锁
MyISAM引擎不支持外键,InnoDB支持外键
MyISAM引擎的表在大量高并发的读写下会经常出现表损坏的情况
对于count()查询来说MyISAM更有优势;InnoDB是为处理巨大数据量时的最大性能设计,它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。
http://ms.csdn.net/geek/94980
http://ms.csdn.net/geek/90776
http://ms.csdn.net/geek/92008
http://www.cnblogs.com/easypass/archive/2010/12/08/1900127.html
http://www.mahaixiang.cn/znseo/820.html
http://www.2cto.com/database/201404/291438.html
相关文章推荐
- JAVA 数据库编程中的性能优化
- 基于DB2的数据库应用系统的性能优化
- 优化数据库大幅度提高Oracle的性能
- 一次数据库的简单性能优化
- 数据库的最优分布来优化I/O性能
- 数据库性能优化分析案例---解决SQL语句过度消耗CPU问题
- 最小化表锁以优化数据库性能Minimizing Table Locks to Optimize Performance
- 数据库查询性能优化
- 数据库性能优化一例之Hash Join
- 一次数据库的简单性能优化
- 优化数据库的三板斧 大幅提高Oracle性能
- [推荐]数据库性能优化
- MySQL 数据库性能优化方法
- [SQL Server]调整SQL Server选项优化数据库性能(转)
- JAVA 数据库编程中的性能优化
- 数据库性能优化
- Oracle数据库系统性能优化策略
- 数据库性能优化(强制使用索引查询)
- 数据库性能优化之JOIN方法
- 一次数据库的简单性能优化