美文网首页T-SqlJava工程师知识树SQL
MySQL-优化-数据库层与硬件层优化

MySQL-优化-数据库层与硬件层优化

作者: HughJin | 来源:发表于2021-03-28 20:11 被阅读0次

数据库层与硬件层优化

优化概览

高性能的数据库依赖与几个因素,如表结构,查询语句,服务器的硬件配置和软件的设置

软件上的构造直接导致了硬件层CPU和I/O操作,所以,我们优化的策略,一般为,减少不必要的磁盘I/O尽量利用好表的物理结构,如索引来快速访问数据,达到高效的查询。

在数据库层的优化

让数据库应用更加快速的最重要的因素当然是它的基本的设计,如:

  • 1:表的结构是否合理

    这些表现在:是否使用了正确的数据类型,如果是一个写频繁的结构,是否一次一次写入,会更新到很多的列,这些的负荷是,会有相应的索引需要进行维护

  • 2:是否使用了正确的索引

    索引使用不当,当数据很大的时候,可能会被全部扫描,如果内存不够大,会利用相应的磁盘进行排序等操作,将会非常慢

  • 3:是否使用了合理的存储引擎,

    mysql中innodb支持事务与外键,并且索引和数据文件是一体的;如果你的引用对于事物要求不是很高,可以考虑使用MyISM,这个存储引擎的速度比较快的,但就是安全性方面有待考虑,并且索引和数据文件是分离的。

  • 4:是否使用了正确的行格式

    mysql中支持压缩的行格式,这样会导致更少的磁盘I/O和读写数据,当然不好的地方是不能在此上建立好的索引和进行数据的比较,比如blob等

  • 5:是否你的应用程序使用了了锁策略

    对于Innodb,使用了行级锁,这鼓励更多的并行操作,如果对与应用程序,如果能把锁移动到应用程序中,使用相应的语言特性,或是系统调用如互斥锁,信号量等来处理,而不应该把维护数据的正确行来锁表

  • 6:是否使用了合理的缓存cache

    这个缓存就更内存的分页一样,大了的话,会造成大量的碎片不能使用,因此,很多查询没有地方缓存而清空之前的缓存,当下一次查询时,就不能利用缓存了,另外,如果小了,会造成mysql对缓存的管理压力加大,因为会为没一次查询可能分好几页来缓存数据,管理这些数据是需要一定的开销的

硬件层的优化

当数据库更加忙的时候,对硬件的要求就更高了,因此,提前识别出系统的瓶颈,一般都是在内存达到80%时更换或添加相应的硬件,有效的慢SQL监控机制也是提前识别系统瓶颈的一种重要方法。

典型的瓶颈有以下方面:

  • 1:磁盘I/O相关

    下面几个是按照IOPS性能提升的幅度排序,对于磁盘I/O可优化的一些措施:

    • (1)、使用SSD或者PCIe SSD设备,至少获得数百倍甚至万倍的IOPS提升;
    • (2)、购置阵列卡同时配备CACHE及BBU模块,可明显提升IOPS(主要是指机械盘,SSD或PCIe SSD除外。同时需要定期检查CACHE及BBU模块的健康状况,确保意外时不至于丢失数据);
    • (3)、有阵列卡时,设置阵列写策略为WB,甚至FORCE WB(若有双电保护,或对数据安全性要求不是特别高的话),严禁使用WT策略。并且闭阵列预读策略,基本上是鸡肋,用处不大;
    • (4)、尽可能选用RAID-10,而非RAID-5;
    • (5)、使用机械盘的话,尽可能选择高转速的,例如选用15KRPM,而不是7.2KRPM的盘,不差几个钱的;
  • 2:内存带宽

    当CPU需要更多的数据来填充cache时,主存可能会变成一个瓶颈,可以考虑更快更大的内存,相比,更快可能会好些,因为cpu的处理速度比内存的速度高几个数量级,如果内存足够快,相对来说,CPU等待的时间就少了,自然速度就是上去了

相关文章

  • MySQL-优化-数据库层与硬件层优化

    数据库层与硬件层优化 优化概览 高性能的数据库依赖与几个因素,如表结构,查询语句,服务器的硬件配置和软件的设置。 ...

  • 常见MYSQL调优策略

    调优层次:硬件层、磁盘IO、文件系统层、 硬件层 磁盘IO 文件系统层 内核参数优化 MYSQL参数优化建议

  • MySQL-性能优化-优化设计和设计原则

    MySQL-性能优化-优化设计和设计原则 MySQL性能优化目的 如何合理的设计数据库? 什么样的数据库设计才能给...

  • face 38 mysql数据库层的优化

    mysql数据库层的优化 穿透缓存层 优化方向 数据表数据类型优化 字段使用什么样的数据类型更合适 字段使用什么样...

  • Centos7.2高并发优化记录

    系统层优化系统 socket 层优化echo 65535 > /proc/sys/net/core/somaxco...

  • 3. 模块组成

    是由很多模块组成的,这些模块可以分成很多层: 最底层是基于硬件加速层(HAL)的各种硬件优化。 再上一层是 ope...

  • Mysql调优——通过索引优化

    通过索引进行优化 优化小细节; 当使用索引列进行查询的时候尽量不要使用表达式,把计算放到业务层而不是数据库层。 #...

  • 数据库查询优化器

      所谓查询优化,目标是关系数据库下或者 newSQL 的 SQL Server 层对 SQL 语句进行优化,在不...

  • 【2019】Scry 9月项目进度月报

    一、SCRY协议层开发 1、IndexedDB数据库结构优化迭代 2、协议层搭建分类信息One class cla...

  • MySQL 数据库优化

    MySQL 数据库优化 软优化一般是操作数据库即可,而硬优化则是操作服务器硬件及参数设置;

网友评论

    本文标题:MySQL-优化-数据库层与硬件层优化

    本文链接:https://www.haomeiwen.com/subject/chghoktx.html