MySQL优化
2018-06-17 23:55:56来源:未知 阅读 ()
1.表结构
- 适当增加冗余字段:严格按照三范式设计的数据库很少存在冗余字段,获取信息时通常需要进行表连接查询,而表连接查询速度较慢,可以将经常需要跨表查询的字段集中到一张表中,以冗余换速度。
- 垂直分割:把字段较多的表分割成多张表,以分担主表的压力,提升系统维护性。分割出来的字段往往是代表次要信息,很少读取或者更新。
2.数据类型
- 尽量使用简单的数据类型,int比string查询效率高。
- 如果一个字段的取值固定有限,不要将这个字段设定为string,可以设定为enum(enum以字符串形式显示,底层以tinyint类型存储),比如用于存储性别、国家信息的字段,因为string字段复杂,不仅占据较大的空间,而且查询效率低。
- 固定长度的字段查询更快,因为长度固定字段中的元素占据相同的空间,很容易根据偏移量获取数据。
3.索引
- 为那些经常出现在查询条件中、数据稳定的字段添加索引。
- 表连接时,连接条件尽可能使用数据类型相同的字段,并且为字段添加索引。如果连接条件中来自两张表的两个字段数据类型不一致,即使添加了索引,索引无效。
4.约束
为字段设定not null非空约束,因为null不仅占据更多的空间,还使对比与索引变得复杂。
5.SQL语句
- 避免使用select *:从数据库中读取的数据越多,查询速度越慢,在数据库与Web服务器分布在不同的计算机上时,还会增加网络传输的负载。
- 使用连接查询替代子查询:子查询时MySQL需要为子查询结果建立一张临时表,查询完毕销毁表,表的建立与销毁的过程耗费较多资源。
- 尽量使用批处理,较少地访问数据库,一次执行较多的操作。
6.缓存
现在我们大多数时候都是通过ORM框架访问数据,这些框架往往提供缓存功能(一级缓存或者二级缓存),开启缓存可以减少访问数据库的次数,不仅提高了反映速度,而且降低了数据库的压力。
参考:
http://blog.csdn.net/waferleo/article/details/7179009
http://www.cnblogs.com/nathan-1988/archive/2012/07/17/2596439.html
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- MySQL replace函数怎么替换字符串语句 2020-03-09
- PHP访问MySQL查询超时怎么办 2020-03-09
- mysql登录时闪退 2020-02-27
- MySQL出现1067错误号 2020-02-27
- mysql7.x如何单独安装mysql 2020-02-27
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash