首页 >

MySQL性能优化之一:提高MySQL并发能力的思路

数据库|mysql教程MySQL性能优化之一:提高MySQL并发能力的思路
mysql优化,马哥教育,mysql性能,mysql并发
数据库-mysql教程
国内下载qt源码网站,卸载ubuntu教程,tomcat7使用教程,音频反爬虫,php验证电子邮箱,浙江seo排名优化公司口碑好lzw
1、使用行级别锁,避免表级别或页级别锁尽量使用支持行级别锁的存储引擎,如InnoDB;只在读操作显著多于写作的场景中(如数据仓库类的应用)使用表级别锁的存储引
php 投票系统源码,ubuntu 不自动重启,tomcat起多了怎么停,儿童手工爬虫,php7数组语法,澄迈SEOlzw
优果网源码,vscode怎么调用插件,ubuntu发热严重,tomcat集成安装,nas爬虫,php7 效率,seo关键字标题,精美大气门户网站,模板博客文章lzw
1、使用行级别锁,避免表级别或页级别锁

尽量使用支持行级别锁的存储引擎,虚拟主机,如InnoDB;只在读操作显著多于写作的场景中(如数据仓库类的应用)使用表级别锁的存储引擎,如MyISAM;。

2、降低热巨锁(hot gaint lock)出现的可能性以尽可能避免全局互斥量

临界区(仅允许单一线程访问的资源)会严重降低MySQL系统并发性;InnoDB缓冲池(buffer pool)、数据字典等都是常见的临界区;幸运的是,香港虚拟主机,虚拟主机,新版本的InnoDB已经能够较好的运行于多核处理器,支持使用innodb_buffer_pool_instances服务器变量建立多个缓冲池实例,每个缓冲池实例分别自我管理空闲列表、列表刷写、LRU以及其它跟缓冲池相关的数据结构,并通过各自的互斥锁进行保护。

3、并行运行多个I/O线程

通过innodb_io_capacity服务器变量等增加磁盘I/O线程的数量可以提高前端操作(如SELECT)的性能,不过,磁盘I/O线程的数量不应该超过磁盘的IOPS(7200RPM的单块硬件的IOPS数量一般为100个左右)。

此外,异步I/O也可以在一定程度上提高系统的并发能力,在Linux系统上,可以通过将MySQL的服务器变量innodb_use_native_aio的值设定为ON设定InnoDB可以使用Linux的异步I/O子系统。

4、并行后端任务

默认情况下,MySQL的清写(purge)操作(用于移除带删除标记的记录)由InnoDB的主线程完成,这可以降低内部资源竞争发生的概率,进而增强MySQL服务伸缩能力。不过,随着InnoDB内部各式各样的竞争越来越多,这种设置带来的性能优势已几乎不值一提,因此,生产环境中应该通过为innodb_purge_threads服务器变量设定为ON将主线程与清写线程分开运行。

5、单线程复制模型中的SQL线程是一个热区

在从服务器上并行运行多个SQL线程可有效提高MySQL从服务器性能,MySQL 5.6支持多线程复制(每库一个复制线程);

本文出自 “马哥教育” 博客,转载请与作者联系!


MySQL性能优化之一:提高MySQL并发能力的思路
  • mysql 优化之COUNT(*)效率分析
  • mysql 优化之COUNT(*)效率分析 | mysql 优化之COUNT(*)效率分析 ...

    MySQL性能优化之一:提高MySQL并发能力的思路
  • 通过实例来理解MySQL索引
  • 通过实例来理解MySQL索引 | 通过实例来理解MySQL索引 ...

    MySQL性能优化之一:提高MySQL并发能力的思路
  • mysql怎么处理高并发?
  • mysql怎么处理高并发? | mysql怎么处理高并发? ...