数据库优化的一点思考(mysql、postgresql等)
2013-12-27 15:12
288 查看
最近有一点空闲时间,想到mysql数据库服务器最近有点慢,就考虑怎么优化一下。
折腾了半天,查看mysql服务器的运行状态,优化数据库配置:内存、连接数等等,包括慢查询sql语句什么的,没有什么明显的效果。当然我在这方面也只是入门级的,基本上每个配置项都需要对着参考手册来优化,可能根本没有达到最优的效果。
翻看了很多文章,思考了一下。我发现很多文章提到的优化方式基本上都是在sql语句,mysql服务器配置的层面,导致了我们有时候优化只不过是采用头痛医脚的方式。数据库服务器的性能可能是多方面,我想在做优化的时候应当遵循这样一个原则:尽可能早的开始考虑优化,但尽可能迟的调试服务器配置和sql。从规划上架构上考虑数据库的性能扩展和瓶颈,当服务器运行一定时期的时候,我们才有更多的服务器运行状态和数据来优化配置。
下面整理了一下大致的思路,但这里没办法详细深入的来谈,主要是涉及的面太广,有这方面的知识,却没有这方面的实践经验。只能算作抛砖引玉,其实不同的数据库之间除了具体的数据库配置有一些差异,基本上可以共用的。
1. 硬件
这里主要谈磁盘,raid , 高效磁盘,固态硬盘
2. 架构
存储架构,主从,读写分离,集群
3. 数据库设计规划
分表,分库,存储引擎选择等
4. 数据库服务器
从编译时开始
操作系统
数据库配置,例如mysql
5. sql 语句
针对mysql sql执行计划 优化。大部分的数据库的sql执行计划基本一致。
mysql 注意不同存储引擎对相同sql 语句有不同的效果
折腾了半天,查看mysql服务器的运行状态,优化数据库配置:内存、连接数等等,包括慢查询sql语句什么的,没有什么明显的效果。当然我在这方面也只是入门级的,基本上每个配置项都需要对着参考手册来优化,可能根本没有达到最优的效果。
翻看了很多文章,思考了一下。我发现很多文章提到的优化方式基本上都是在sql语句,mysql服务器配置的层面,导致了我们有时候优化只不过是采用头痛医脚的方式。数据库服务器的性能可能是多方面,我想在做优化的时候应当遵循这样一个原则:尽可能早的开始考虑优化,但尽可能迟的调试服务器配置和sql。从规划上架构上考虑数据库的性能扩展和瓶颈,当服务器运行一定时期的时候,我们才有更多的服务器运行状态和数据来优化配置。
下面整理了一下大致的思路,但这里没办法详细深入的来谈,主要是涉及的面太广,有这方面的知识,却没有这方面的实践经验。只能算作抛砖引玉,其实不同的数据库之间除了具体的数据库配置有一些差异,基本上可以共用的。
1. 硬件
这里主要谈磁盘,raid , 高效磁盘,固态硬盘
2. 架构
存储架构,主从,读写分离,集群
3. 数据库设计规划
分表,分库,存储引擎选择等
4. 数据库服务器
从编译时开始
操作系统
数据库配置,例如mysql
5. sql 语句
针对mysql sql执行计划 优化。大部分的数据库的sql执行计划基本一致。
mysql 注意不同存储引擎对相同sql 语句有不同的效果
相关文章推荐
- MySQL 数据库性能优化之缓存参数优化
- mysql优化——数据库优化策略
- PostgreSQL学习篇15.1 数据库配置优化
- MySQL 数据库性能优化之缓存参数优化
- MySQL 数据库性能优化之SQL优化
- mysql sql 百万级数据库优化方案
- Java面试准备十六:数据库——MySQL性能优化
- MySQL 数据库上线后根据 status 状态优化
- 【数据库】MySQL性能优化之swap占用高
- mysql优化-数据库结构
- mysql 数据库中my.ini的优化 2G内存针对站多 抗压型的设置
- MySQL 数据库性能优化之缓存参数优化
- 大数据之数据库mysql优化实战之索引的使用
- 开源数据库 H2, HSQLDB, DERBY, PostgreSQL, MySQL区别/对比图表( 附加翻译) h2数据库
- 从数据库、代码和服务器对PHP网站Mysql做性能优化
- 数据库 之 Mysql优化的问题
- 数据库设计时设计标识字段的一些思考[mysql]
- 数据库技巧——MySQL十大优化技巧
- mysql sql 百万级数据库优化方案
- 数据库的通用字段设计和思考优化