zoukankan      html  css  js  c++  java
  • mysql数据库优化

    此文转载自:https://my.oschina.net/u/4797388/blog/4754006

    PS:随着业务的发展,数据量越来越大了。不能再像之前一样随意查询了,数据库优化势在必行。所以这里总结一下mysql数据库有哪些优化的方法

    一、数据库优化的大致分类

    1、数据库层面的优化

    2、硬件层面的优化

    数据库层面的优化:

    (1)、影响数据库查询速度的几大因素一是表结构的设计是否合理,  特别是表中的列是否设置了合适的数据类型,是否设置了合适的数据长度以及是否适配了实际的工作场景,例如需要经常更新的表往往有着较少的列,而需要经常分析大量数据的表则有着更多的列。所以一切还是以实际情况为主。

    (2)、建立的索引是否生效

    (3)、是否使用了合适的存储引擎,mysql数据库有多个存储引擎,不同的存储引擎有着不同的特点,以主键索引为例,在InnoDB引擎中主键索引时将数据存储在叶子节点中,而在myism引擎中则是将数据存储在辅助表,并且所有的数据都是存储在一个.MYD的文件中。所以在适当的时候选择适当的存储引擎对于数据的查询等也是非常有效的。

    (4)、数据库表是否使用了固定的行格式,如是否使用了压缩,MySQL表压缩是一个十分实用的功能,mysql中的数据在未指定表压缩时默认使用的存储方式是一页16KB,而使用了表压缩功能时使用的则是8KB,经过压缩后的数据所占的空间更加小了那么在读写数据时也就占用更小的磁盘I/O了,读写速度自然也能够提升了。只要在建表时加上一句 row_format = compressed即可开启此功能。

    (5)、合理利用加锁策略。如在可能的情况下允许共享访问,那么数据库能够并行的访问数据,又或者在设当的时候允许独占访问,让重要的操作能够获得更高的优先级。合理的利用加锁策略也是能够较大的提升数据库的性能的。

    (6)、正确的使用缓存,只需要确保内存足够容纳频繁访问的数据,而不需要大到超出物理内存可承受的范围。

    硬件层面的优化:

    (1)、由于磁盘的查询速度收到了一定的物理限制,所以我们可以将查询的数据分发到多个磁盘系统中,也就是分布式存储数据。

    (2)、磁盘的读写优化

    (3)、cpu周期。当数据在主存中时,我们必须对其处理以获得结果。当大量的数据被挂载到内存中时也会影响数据的查询速度。

       

    更多内容详见微信公众号:Python测试和开发

    Python测试和开发

  • 相关阅读:
    day 6 敌机
    day 11 绘制轮廓
    day 10 形态学处理 膨胀
    day 5 飞机发射子弹 难点??
    激活Navicat?如何注册Navicat?
    Gradle DSL method found: ‘android()’错误
    腾讯sdk配置
    Android模拟器报"Failed To Allocate memory 8"错误的解决办法
    文件上传工具swfupload[转]
    35个jquery技巧[转]
  • 原文地址:https://www.cnblogs.com/phyger/p/14048285.html
Copyright © 2011-2022 走看看