前言

数据库优化是个老生常谈的话题,最近也在研究如何优化,所以特地记录一下优化思路,

优化项大概包括如下几个方面,从基础硬件,到mariadb数据库,在到程序方面,涉及面非常广,有些需要自己去做实验,猜测自己的想法,有些涉及到编程相关的,则需要和开发配合解决。

另外优化并非一朝一夕能解决的,往往需要很久才能达到效果,推荐软件在立项时确定数据库架构最好。

mariadb 性能调整 mariadb优化_服务器

服务器硬件优化

服务器做为运行的基石,也谈不上什么优化可言,简单总结来说就是:服务器上能插满的全插满,能上万兆网的,绝不上千兆,能上全闪的绝不用SAS,能上4路U的,绝不上双路U。
可事实往往并非如此,还是需要我们做些优化,优化顺序大概如下:

单机

内存>硬盘>网络>cpu
内存:大内存对于mariadb或者其他关系型数据库来说,提升都是是非常巨大的,大内存可以从磁盘加载更多的的索引和表数据进行缓存,从而减少了磁盘I/O,并毕竟数据从内存中读取和从磁盘中读取速度不是一个量级的,尤其是机械硬盘。16~32G为不错的选择
硬盘:没啥好说的,如果能上固态最好,不能上的话,最起码给临时文件和事务日志配个固态硬盘组,如果选择机械硬盘,请选择高转的SAS硬盘,raid做0最快,但是不安全,推荐做raid5吧,读、写性能略差,但是安全;
网络:更快,更快,只有更快
CPU:虽然对于数据库来说,虽然CPU瓶颈在于其他地方,但是更高的核数和频率能够更快的处理数据,推荐使用8核,高频率。

虚拟化、集群

购买一个配置高的的服务器,做好虚拟化,然后集群化mariadb,可以使用读写分离,主从复制,或者使用MariaDB Galera Cluste多主都是可以的,如果考虑到容错可以购买多台,做超融合,出现故障时可以进行热迁移,提高容错率;部署时,记得mariadb服务端不要全部装一个上面,分开来装。

云服务器

如果是云数据库的话,自由度比较高,可以参考上面的单机或者集群进行购买,购买时需要了解清楚,坑比较多,如果同步到本地机房,可能还需要进行VPN的搭建。

服务器优化总结
  1. 如果是单机购买服务器时,请注意配置:内存>硬盘>网络>cpu;
  2. 如果是做虚拟化,运行mariadb集群,请做好相关的监控项目,并且服务器虚拟化需要有一定的学习成本(如果你是专业DBA的话,这块不用考虑,有专门的运维人员);
  3. 如果购买的是云数据库,可以直接对接你的销售顾问,他们都有一套成熟的解决方案,然后等着掏钱就行了
  4. 如果确定用1~2号方案,记得常备一些备件,尤其是硬盘,故障率比较高,其次可以备一些内存;



<未完待续>