ref:http://www.javaeye.com/topic/144033
作者:andyao
原文link: http://andyao.javaeye.com/admin/show/144033
转载请留名
1. 简介
在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响。MySQL是目前使用最多的开源数据库,但是MySQL数据库的默认设置性能非常的差,仅仅是一个玩具数据库。因此在产品中使用MySQL数据库必须进行必要的优化。
优化是一个复杂的任务,本文描述MySQL相关的数据库设计和查询优化,服务器端优化,存储引擎优化。
2. 数据库设计和查询优化
在MySQL Server性能调优中,首先要考虑的就是Database Schema设计,这一点是非常重要的。一个糟糕的Schema设计即使在性能调优的MySQL Server上运行,也会表现出很差的性能;和Schema相似,查询语句的设计也会影响MySQL的性能,应该避免写出低效的SQL查询。这一节将详细讨论这两方面的优化。
2.1 Schema Design
Schema的优化取决于将要运行什么样的query,不同的query会有不同的Schema优化方案。2.2节将介绍Query Design的优化。Schema设计同样受到预期数据集大小的影响。Schema设计时主要考虑:标准化,数据类型,索引。
2.1.1 标准化
标准化是在数据库中组织数据的过程。其中包括,根据设计规则创建表并在这些表间建立关系;通过取消冗余度与不一致相关性,该设计规则可以同时保护数据并提高数据的灵活性。通常数据库标准化是让数据库设计符合某一级别的范式,通常满足第三范式即可。也有第四范式(也称为 Boyce Codd范式,BCNF))与第五范式存在,但是在实际设计中很少考虑。忽视这些规则可能使得数据库的设计不太完美,但这不应影响功能。
标准化的特点:
1) 所有的“对象”都在它自己的table中,没有冗余。
2) 数据库通常由E-R图生成。
3) 简洁,更新属性通常只需要更新很少的记录。
4) Join操作比较耗时。
5) Select,sort优化措施比较少。
6) 适用于OLTP应用。
非标准化的特点:
1) 在一张表中存储很多数据,数据冗余。
2) 更新数据开销很大,更新一个属性可能会更新很多表,很多记录。
3) 在删除数据是有可能丢失数据。
4) Select,order有很多优化的选择。
5) 适用于DSS应用。
标准化和非标准化都有各自的优缺点,通常在一个数据库设计中可以混合使用,一部分表格标准化,一部分表格保留一些冗余数据:
1) 对OLTP使用标准化,对DSS使用非标准化
2) 使用物化视图。MySQL不直接支持该数据库特性,但是可以用MyISAM表代替。
3) 冗余一些数据在表格中,例如将ref_id和name存在同一张表中。但是要注意更新问题。
4) 对于一些简单的对象,直接使用value作为建。例如IP address等
5) Reference by PRIMARY/UNIQUE KEY。MySQL可以优化这种操作,例如:java 代码免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容猜你喜欢
AI推送时光机mysql优化文章(推荐)
数据库2024-04-02Mysql优化神器(推荐)
数据库2022-05-21推荐一款MySQL优化工具
数据库2024-04-02MySQL可视化工具推荐
数据库2024-04-02MySQL优化常用的19种有效方法(推荐!)
数据库2024-04-02PHP如何实现“相关文章推荐”功能
数据库2023-06-20【Mysql】免费的mysql图形化软件推荐
数据库2023-10-05如何优化数据库的数据推荐
数据库2024-07-03详谈redis优化配置和redis.conf说明(推荐)
数据库2022-06-04Vue项目打包优化实践指南(推荐!)
数据库2024-04-02DedeCMS栏目列表推荐文章加粗效果去除方法
数据库2022-06-12wordpress随机文章/随机推荐的实现思路与用法
数据库2022-06-12dedecms列表推荐文章默认为加粗的修改方法
数据库2022-06-12CMS 网站优化秘籍:10 大 SEO 插件推荐
数据库2024-04-02PHP开发微信公众号:如何实现文章推荐功能
数据库2023-10-26一篇文章带你掌握MySQL索引下推
数据库2022-12-21一篇文章带你了解MySQL索引下推
数据库2024-04-02Mysql性能优化之索引下推
数据库2022-05-19数据库-三范式优化与不推荐使用外键
数据库2016-12-01SEO优化之文章为什么不收录
数据库2023-06-10咦!没有更多了?去看看其它编程学习网 内容吧