地址:blog.csdn.net/YoungerChen/archive/2010/11/12/6004669.aspx
对MySQL性能影响关系紧密的五大配置参数
以下的文章主要是对MySQL 性能影响关系紧密的五大配置参数的介绍,我前几天在相关网站看见对MySQL性能影响关系紧密的五大配置参数的资料,觉得挺好,就拿出来供大家分享,望你能有所收获。
(一)连接
连接通常来自Web 服务器,下面列出了一些与连接有关的参数,以及该如何设置它们。
1、max_connections
这是Web服务器允许的最大连接数,记住每个连接都要使用会话内存(关于会话内存,文章后面有涉及)。
2、max_packet_allowed
最大数据包大小,通常等于你需要在一个大块中返回的最大数据集的大小,如果你在使用远程mysqldump,那它的值需要更大。
3、aborted_connects
检查系统状态的计数器,确定其没有增长,如果数量增长说明客户端连接时遇到了错误。
4、thread_cache_size
入站连接会在MySQL中创建一个新的线程,因为MySQL中打开和关闭连接都很廉价,速度也快,它就没有象其它数据库 ,如Oracle 那么多持续连接了,但线程预先创建并不会节约时间,这就是为什么 要MySQL线程缓存的原因了。
如果在增长请密切注意创建的线程,让你的线程缓存更大,对于2550或100的thread_cache_size,内存占用也不多。
(二)查询缓存
(三)临时表
内存速度是相当快的,因此我们希望所有的排序操作都在内存中进行,我们可以通过调整查询让结果集更小以实现内存排序,或将变量设置得更大。
tmp_table_size
max_heap_table_size
无论何时在MySQL中创建临时表,它都会使用这两个变量的最小值作为临界值,除了在磁盘上构建临时表外,还会创建许多会话,这些会话会抢占有 限制的资源,因此最好是调整查询而不是将这些参数设置得更高,同时,需要注意的是有BLOB或TEXT字段类型的表将直接写入磁盘。 深入浅出MySQL双向复制技术
(四)会话内存
MySQL中每个会话都有其自己的内存,这个内存就是分配给SQL 查询的内存,因此你想让它变得尽可能大以满足需要。但你不得不平衡同一时间数 据库内一致性会话的数量。这里显得有点黑色艺术的是MySQL是按需分配缓存的,因此,你不能只添加它们并乘以会话的数量,这样估算下来比MySQL典型 的使用要大得多。
最佳做法是启动MySQL,连接所有会话,然后继续关注顶级会话的VIRT列,mysqld行的数目通常保持相对稳定,这就是实际的内存 总用量,减去所有的静态MySQL内存区域,就得到了实际的所有会话内存,然后除以会话的数量就得到平均值。
1、read_buffer_size
缓存连续扫描的块,这个缓存是跨存储引擎的,不只是MyISAM表。
2、sort_buffer_size
执行排序缓存区的大小,最好将其设置为1M-2M,然后在会话中设置,为一个特定的查询设置更高的值。
3、join_buffer_size
执行联合查询分配的缓存区大小,将其设置为1M-2M大小,然后在每个会话中再单独按需设置。
4、read_rnd_buffer_size
用于排序和order by操作,最好将其设置为1M,然后在会话中可以将其作为一个会话变量设置为更大的值。
(五)慢速查询日志
慢速查询日志是MySQL很有用的一个特性。
1、log_slow_queries
MySQL参数中log_slow_queries参数在my.cnf文件中设置它,将其设置为on,默认情况下,MySQL会将文件放到数据目录,文件以“主机名-slow.log”的形式命名,但你在设置这个选项的时候也可以为其指定一个名字。
2、long_query_time
默认值是10秒,你可以动态设置它,值从1到将其设置为on,如果数据库启动了,默认情况下,日志将关闭。截至5.1.21和安装了 Google 补丁的版本,这个选项可以以微秒设置,这是一个了不起的功能,因为一旦你消除了所有查询时间超过1秒的查询,说明调整非常成功,这样可以帮助 你在问题变大之前消除问题SQL。
3、log_queries_not_using_indexes
开启这个选项是个不错的主意,它真实地记录了返回所有行的查询。
小结
我们介绍了MySQL参数的五大类设置,平时我们一般都很少碰它们,在进行MySQL性能调优和故障诊断时这些参数还是非常有用的。
MySQL中的缓存查询包括两个解析查询计划,以及返回的数据集,如果基础表数据或结构有变化,将会使查询缓存中的项目 无效。
1、query_cache_min_res_unit
MySQL参数中query_cache_min_res_unit查询缓存中的块是以这个大小进行分配的,使用下面的公式计算查询缓存的平均大小,根据计算结果设置这个变量,MySQL就会更有效地使用查询缓存,缓存更多的查询,减少内存的浪费。
2、query_cache_size
这个参数设置查询缓存的总大小。
3、query_cache_limit
这个参数告诉MySQL丢掉大于这个大小的查询,一般大型查询还是比较少见的,如运行一个批处理执行一个大型报表的统计,因此那些大型结果集不应该填满查询缓存。
1. qcache hit ratio = qcache_hits / (qcache_hits + com_select)
使用
1. SQL > show status like ‘qcache%’;
2. SQL > show status like ‘com_%’;
找到这些变量。
1. average query size = (query_cache_size – qcache_free_memory)/qcache_queries_in_cache
使用
1. SQL > show variables like ‘query%’;
2. qcache_* status variables you can get with:
3. SQL > show status like ‘qcache%’;
获取query_cache_size的值。
分享到:
相关推荐
- **配置调整**:根据实际应用场景调整MySQL配置参数,如buffer pool大小等。 - **硬件优化**:升级硬件设备,如增加内存、使用更快的磁盘等。 #### 五、MySQL架构设计 - **单机部署**:适用于小型应用,易于部署...
- **定义**:MySQL是一种关系型数据库管理系统(RDBMS),它以其高性能、可靠性和易用性而闻名。 - **开发者**:最初由瑞典的MySQL AB公司开发,后来被Sun Microsystems收购,现在归Oracle公司所有。 - **应用领域**...
- **配置调整**:根据实际负载情况调整服务器配置参数。 #### 三、架构与管理 Sybase ASE具有丰富的架构特性和管理工具,以支持高效的数据管理和应用部署。以下是几个关键领域: ##### 3.1 架构 Sybase ASE采用...
MySQL调优是一个复杂而重要的过程,它涉及到数据库...定期监控系统性能,根据业务需求和负载变化适时调整参数和策略,是保持MySQL高效运行的关键。同时,与开发和运维团队紧密协作,共同维护数据库系统的稳定和高效。
5. **MySQL**:MySQL 是一个开源的关系型数据库管理系统,广泛应用于互联网行业,因其高性能、高可用性和易用性而受到青睐。在Java项目中,MySQL通常与JDBC(Java Database Connectivity)一起使用,通过JDBC API...
3. **配置参数**:根据实际情况修改配置文件中的参数,如数据库连接信息、支付接口配置等。 4. **安全加固**:对服务器进行必要的安全设置,比如限制外部访问、定期备份数据等措施,确保系统的稳定运行。 #### 五、...
### 配置参数示例 ```ruby input { mysql { host => "localhost" port => 3306 user => "username" password => "password" db => "database_name" sql => "SELECT * FROM table_name WHERE timestamp > :...
2. **Mysql数据库**:MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS)。它以其高性能、可靠性和易用性而著称,非常适合用于开发企业级应用。 3. **Java技术**:Java是一种面向对象的编程语言,以其跨平台性...
1. **数据库连接频繁开启与关闭**:每次需要访问数据库时都重新建立连接,完成后立即关闭连接,这会导致资源浪费并影响性能。 - **解决方案**:引入数据库连接池技术,统一管理数据库连接资源,减少连接创建与销毁...
MySQL是一种关系型数据库管理系统,因其高性能、高稳定性等特点被广泛应用于各类应用系统中。 1. **数据表设计**:根据系统功能需求设计相应的数据表,如用户表、挂号表、医生表等。 2. **数据表关系**:定义各个...
- **高并发下的设计挑战**: 当面临高并发和大数据量时,MySQL 可能需要更复杂的架构设计来保持性能。 - **性能瓶颈**: 如果没有合理的架构设计,MySQL 在高负载下可能会出现性能问题。 #### 四、Oracle 数据库安装...
4. 性能优化:合理配置Oozie服务器参数,如并发度、队列大小等,提升整体效率。 总结,Apache Oozie 4.3.1作为Hadoop生态中的关键组件,提供了强大的工作流管理和调度能力。理解其源码结构和编译安装过程,有助于...
在实际开发中,Django的数据库配置通常在settings.py文件中进行,这样可以方便地更改数据库连接参数,甚至在不修改代码的情况下切换到不同的数据库引擎。Django支持多种数据库,包括MySQL、PostgreSQL、SQLite和...
- **性能调优**:介绍如何调整Hive的配置参数以获得更好的性能。 - **容错机制**:讨论Hive在面对故障时如何自动恢复。 - **安全性和访问控制**:探讨Hive的安全模型以及如何实施访问控制策略。 - **Hive在实际项目...
5. MySQL:关系型数据库,存储房地产项目、客户、交易等数据。 6. Swagger:API文档工具,方便开发者理解和使用系统提供的接口。 四、系统功能模块 1. 用户管理:包括用户注册、登录、权限管理等功能,确保系统安全...
6. 系统设置:如权限配置、系统参数调整等。 五、数据库设计 系统背后通常会有一个关系型数据库,如MySQL或Oracle,用于存储各种办公信息。数据库设计应遵循规范化原则,确保数据的一致性和完整性。常见的表可能...