zoukankan      html  css  js  c++  java
  • MySQL优化系列3-存储引擎

    简介

    1. 插拔式存储引擎(pluggable Storage Engines)这是mysql特有的
    2. 存储引擎是指定在表之上的,即一个库中的每一个表都可以指定独立的存储引擎
    3. 每一种存储引擎都会生成一个frm文件(mysql8取消了该文件)

    Innodb

    5.5.8版本后的默认存储引擎,之前默认为MyIsam
    支持ACIDs事务
    支持行锁,支持外键
    聚集方式存储数据,每张表的存储都是按照主键的顺序进行存放(如果没有显示的指定主键,会隐式的为每一行生成一个6 byte的rowId作为主键)
    因为分词的原因需要通过第三方实现中文全文索引

    MyIsam

    不支持事务
    表锁
    支持全文索引
    5.5.8版本之前默认存储引擎,临时表也会用到Myisam存储引擎
    myisam存储引擎的缓存只缓存索引文件,而不缓存数据文件(mysql8缓存模块去除)
    select count(*) from table 不需要扫表

    CSV存储引擎

    不能定义索引、列定义必须为NOT NULL,不能设置自增列->不适用大表或者数据的在线处理
    CSV数据的存储用,隔开,可以直接编辑CSV文件进行数据的编排->数据安全性低
    编辑数据文件后,执行flush table xxx生效
    应用场景:
    数据的快速导入导出
    表格直接转换成csv

    Archive 存储引擎

    只支持insert和select操作
    5.1版本后支持索引,只允许自增ID建立索引
    使用zlib算法压缩数据进行存储,数据存储为ARZ文件格式
    行级锁
    不支持事务
    数据占用磁盘少
    应用场景:
    日志系统
    大量的设备数据采集

    Memory存储引擎

    数据存放到内存中,IO效率要比其他引擎高
    数据库重启或崩溃数据丢失,内存数据表默认只有16M
    经常用在临时表中
    支持hash索引,Btree索引,默认使用哈希索引,而不是B+Tree
    只支持表锁
    不支持TEXT、BLOB、存储varchar时是按照char的方式进行的(耗费内存)
    应用场景:
    等值查找热度较高数据
    查询结果内存中的计算,大多数都是采用这中存储引擎作为临时表存储需要计算的数据

    各种索引对比:https://dev.mysql.com/doc/refman/5.7/en/innodb-introduction.html

  • 相关阅读:
    多级导航Menu的CSS
    Centos7在线安装PostgreSQL和PostGIS
    PostGis 根据经纬度查询两点之间距离
    在PowerDesigner中表显示中添加Code的显示
    Tomcat部署Geoserver
    PostGIS之路AddGeometryColumn函数添加一个几何类型字段
    怎样把多个excel文件合并成一个
    Error:java: 无效的目标发行版: 11
    PowerDesigner导出Excel
    GeoServer发布高清电子地图
  • 原文地址:https://www.cnblogs.com/zh-ch/p/12837634.html
Copyright © 2011-2022 走看看