mysql5.7官网直译InnoDB表优化--优化InnoDB的配置变量

8.5.9 Optimizing InnoDB Configuration Variables 优化InnoDB的配置变量
不同的配置对轻量级可预测负载服务,或者是始终满负荷服务器或者是高活动率的服务器有不同的表现。
因为InnoDB存储引擎会自动完成许多它自己的优化,许多性能调优任务涉及到监控从而保证数据库的性能很好,并且在性能下降时,改变配置选项。请看14.16的InnoDB和MySQL性能方案整合关于InnoDB性能监控的信息。
主要的配置步骤你能够参考的包括:
>使InnoDB使用高性能的内存分配在系统中包括他们。请看14.6.4给InnoDB配置内存分配
>控制改变数据类型的操作对于InnoDB缓存中改变的数据,避免频繁的写小磁盘。请看14.6.5的配置InnoDB改变缓存。因为默认是会缓存所有数据类型的改变的操作,如果你需要减少缓存的大小,那你就可以改变这个设置。
>要想开启或者关闭自适应索引的特点通过使用innodb_adaptive_hash_index选项。具体看14.4.3的自适应哈希索引了解更多,你能够在异常活动时期设置,然后再平常回复。
>设置有限的线程数量到InnoDB进程,如果上下文切换是瓶颈,请看14.6.6的在InnoDB配置并发线程数。
>控制InnoDB完成预读的块大小。当系统没有可用的I/O容量,更多的预读能够提高查询的性能。太多的预读设置能够引起周期性的性能下降在一个高负载的系统中,具体请看14.6.3.5配置InnoDB预读的缓存大小。
>增加读或者写操作的后台线程,如果你有一个高性能I/O子系统,那么默认值不能玩好的发挥其性能。请看14.6.7的配置后台线程数量给InnoDB I/O.
>控制InnoDB在后台的执行量。请看14.6.9的配置InnoDB主线程比例。你也能按比例降低这个设置,如果你观察到性能在周期性的下降的话。
>控制算法,用于决定当InnoDB执行确定类型的后台写。请看14.6.3.6的配置InnoDB 缓冲池的刷出。算法会对一些类型的工作负载起作用,但是另外的不会。所以如果你观察到性能在下降,可以关闭它。
>多核系统的优势和他们缓存的配置,为了最小化上下文切换的延迟。请看14.6.10的配置自旋锁投票
>阻止一次性操作里如表扫描影响到了使用的存储在InnoDB缓存中的数据。请看14.6.3.4使得缓存扫描持久有效。
>调整日志文件到一个大小使得对稳定性和故障恢复高效。InnoDB的日志文件通常设置的比较小来防止崩溃后的启动时间过长。优化在mysql5.5中有介绍加快崩溃恢复的某些步骤。特别是,扫描redo日志和快速应用redo日志,因为提高算法对于内存的管理。如果你保持你的日志特别小从而避免长时间的启动,你可以考虑增加日志大小来减少I/O,I/O会引发redo日志记录回环。
>配置在innoDB缓存池中的实例数量和大小,对多字节缓存池的系统特别重要。看14.6.3.3配置多字节缓冲池实例。
>增加最大并发事物,对于忙碌的数据库系统有明显的性能提升。请看14.4.8的Undo 日志。
>迁移清理操作(一类型的垃圾收集)到后台线程。请看14.6.11配置InnoDB的清除计划,为了有效的测试这个设置的结果,首先调整其他I/O相关的和线程相关的配置设置。
>减少InnoDB的开关量在当并发线程之间,所以SQL操作在一个忙碌系统中不容易排队等候和形成一个阻塞。设置innodb_thread_concurrency选项的值,基本接近32对于高性能系统。增加innodb_concurrency_tickets选项的值,典型的是5000左右.这种选项的结合设置一个上限在innoDB处理过程中任意一次的线程数量,并且允许每一个线程去完成大量的工作在交换出去之前,所以等待的线程数量会比较少并且操作完成不需要昂贵的上下文切换。
--------------------------------
8.5.10 Optimizing InnoDB for Systems with Many Tables 对多张表的InnoDB系统优化
>如果你已经配置了non-persistent优化统计(一个非默认配置),InnoDB计算索引基数值在表开始扫描之后,而不是存储这些表中的值。这一设置能够花费大量时间在系统其中部分数据在多表。因为这个管理操作只应用在初始化表打开操作,为了预热表在之后的使用中。立即访问它通过查询问题例如select 1 from tb1_name limit 1.
>优化统计被吃就好到磁盘,能够通过innodb_stats_persistent配置来选择。更多信息关于持久化优化统计,请看14.6.12.1的配置持久化优化统计的参数。
到这关于innoDB表的优化就结束了,接下来我们讨论关于锁的优化。

你可能感兴趣的:(翻译,mysql)