MySQL 数据库是时下最流行的关系型数据库之一,但是经常使用 MySQL 数据库的朋友应该有所体会,就是 MySQL 数据库在面临高并发大数据的情况下,性能会急转直下。此时的 MySQL 数据库就会变得像《疯狂动物城》中的闪电一样,以至于你的每一查询都需要 N 长时间才能返回呢!那么在面临数据库可能会变得缓慢的情况下,如何才能尽可能地让你的数据库变得“丝滑”起来呢?
例如,你可能经常会遇到 MySQL 数据库的性能瓶颈
,那么此时又该如何调优 MySQL 数据库的性能呢?
此时,我猜你大概率会选择去百度、Google,但是比较尴尬的是,会发现大多数情况下查询出来的方法对于你的帮助也是微乎其微的。它可能会告诉你,遇到这种情况应该执行xxx
这条 SQL,但是此时你真的敢执行吗?如果执行之后导致了数据库崩溃怎么办呢?
说到这里,我特别想跟你分享我之前在工作中曾经遇到的一个实际案例。
有一次,我们数据库出现了一个奇怪的现象:write
速度很慢,TPS
也很低,但是数据库主机的磁盘 IO
的压力并不大。这不禁让我们产生了疑问:为什么在磁盘 IO
不高时,数据库的 write
速度仍然很慢呢?
我们百度和 Google 了很久仍不得其解,最后我们突然想起来 MySQL 数据库
并不是直接根据硬盘的性能来调节其 write
速度,而是靠 innodb_io_capacity
参数来告诉 MySQL 数据库
磁盘的