mysql性能优化总结(三)

mysql体系结构

  插件式存储引擎,将数据的查询和存储相分离.每一款存储引擎都有各自的优缺点.可以灵活选用

  架构: 客户端 -> mysql服务层 -> 存储引擎层

  存储引擎是针对表,不是针对库,同一库中的不同的表,可以使用不同的存储引擎.(但是不建议这样做),存储引擎的不同会对性能产生直接的影响.

 

mysql常用的存储引擎之MyISAM

  mysql5.5之前版本默认的存储引擎

  MYISAM存储引擎表由MYD(数据文件)和MYI(索引文件)组成,另外还有一个frm文件,并非myisam特有,是所有存储引擎都有的文件,用于存储表结构

  myisam特性

    1.并发性与锁级别

      使用的是表级锁,读取数据的时候也是对全表加共享锁.读取和写入是互斥的.

      读写并发场景性能不佳

    2.表损坏恢复

      check table tableName;

      repair table tableName;

    3.myisam支持的索引类型

      支持全文索引,并且是在5.7之前唯一支持全文索引的官方存储引擎

      支持对text和blob字段简历前500字符的前缀索引

    4.myisam支持对只读表的数据压缩,减少磁盘io(测试使用mariadb,发现压缩之后仍然可以插入数据,myisam.OLD还在一直变大)

      myisampack -b -f tablename.MYI

  myisam限制

    不支持事务

    5.0之前的版本默认表大小是4G

    5.0之后的版本默认表大小是256TB

  myisam适用场景

    1.非事务型应用

    2.只读类应用

    3.空间类应用      myisam是5.7之前唯一支持空间函数的存储引擎,例如gps数据

 

mysql性能优化总结(三)

上一篇:Couchdb 垂直权限绕过漏洞(CVE-2017-12635)


下一篇:MYSQL wait_timeout以及connect_timeout.这两个有什么区别