数据库性能优化
来源:互联网 发布:淘宝返利最高返多少 编辑:程序博客网 时间:2024/05/16 18:44
字段设计
- 尽量使用数字型,比字符型快;如果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 0
- 性能优化之数据库优化
- 性能优化之数据库优化
- 性能优化之数据库优化
- 性能优化之数据库优化
- 性能优化之数据库优化
- android性能优化---数据库优化
- 性能优化之数据库优化
- 性能优化之数据库优化
- 性能优化之数据库优化
- 性能优化之数据库优化
- 性能优化之数据库优化
- 性能优化之数据库优化
- 性能优化之数据库优化
- 性能优化之数据库优化
- 数据库性能优化
- 数据库性能优化
- 数据库性能优化措施
- 数据库性能优化
- 三层架构之间的相互关系
- 制作esp8266+c51,点亮单片机上的led小灯
- The valid characters are defined in RFC 7230 and RFC 3986问题分析与解决
- JVM学习内存管理和垃圾回收
- Java 基础语法
- 数据库性能优化
- TensorFlow基础知识点(三)变量/Variables
- CSS 三大特性: 继承性、层叠性、优先级
- 在windows7下配置XAMPP+Django+mod_wsgi
- LeetCode题解 C++ Longest Substring Without Repeating Characters
- 最常用的几个网络CMD命令总结
- 在springMVC中的Junit测试加注解实现
- 【算法】斐波那契数列的效率问题
- Java 对象和类