zoukankan      html  css  js  c++  java
  • 基于MySQL INNODB的优化技巧

    背景

    ​ 回顾人们在开始工作之前,都会问自己这样一个问题:给你一台16G内存的Innodb专用数据库服务器,如何配置才能让其稳定、高效地给典型的Web应用提供服务?

    硬件

    内存:内存对于Innodb数据库至关重要!16-32G内存

    CPU:虽然CPU配置依赖于应用,但一般来说,就CPU来说,2*Dual Core CPUs已是非常好的配置,若使用two Quad Core CPUs 会增加一些扩展性的问题。

    硬盘:一般来说,硬盘需要使用6-8个硬盘做成一个RAID就足够了。RAID10比RAID5的效果要好。

    软件

    操作系统

    • 操作系统采用64位的,切勿在64位的机器上使用32位的操作系统。
    • linux操作系统使用LVM将更高效
    • 大多数情况下EXT3文件系统就足够了,但一些特殊项目中会使用XFS文件系统。
    • 如果使用参数innodb_file_per_table,虽然作用很小,还是建议使用选项noatime和nodiratime。
    • 确保swap充足

    MySQL数据库设置

    innodb_buffer_pool_size :70-80%可用内存。

    innodb_log_file_size :取决于您的恢复速度需求,一般来说256M已经足够。
    innodb_log_buffer_size :4M能满足大多数情景,若使用很多大字段需适当增加该值,目前看到的状况8M即可。

    innodb_flush_log_at_trx_commit=2 :若不关心事物的ACID特性的话,在系统崩溃时,设置这个值可以在1~2秒中释放事务。特别是在有较多短连接的情况下,该参数尤为重要。
    innodb_thread_concurrency=8:即使当前的InnoDB可扩展性修复具有有限的并发性也有帮助。8这个数据能满足大多数情况,但实际运用起来可能比这个值大也有可能比这个值小。
    innodb_flush_method=O_DIRECT :大多数情况下可提高性能,但没有RAID的话,会影响写速度。

    参考文献

  • 相关阅读:
    【例题 6-12 UVA
    【例题 6-11 UVA-297】Quadtrees
    【例题 6-10 UVA
    SpringMVC表单验证器
    Spring MVC常用注解
    什么是Spring Boot?
    什么是Kotlin?Java的替代语言?
    阿里Druid连接池的坑。。
    常见的3种Class级别的错误
    阿里巴巴,排行前10的开源项目
  • 原文地址:https://www.cnblogs.com/nolanchan/p/10389507.html
Copyright © 2011-2022 走看看