码迷,mamicode.com
首页 > 数据库 > 详细

MySQL之存储引擎

时间:2019-11-07 13:16:43      阅读:94      评论:0      收藏:0      [点我收藏+]

标签:%s   能力   nes   编辑   show   sql   myisam   相关   数据文件   

MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。
 
技术图片
 

InnoDB引擎特点

  1、行级锁

  2、支持事务,适合处理大量短期事务

  3、读写阻塞与事务隔离级别相关

  4、可缓存数据和索引

  5、支持聚簇索引

  6、崩溃恢复性更好

  7、支持MVCC高并发

  8、从MySQL5.5后支持全文索引

  9、从MySQL5.5.5开始为默认的数据库引擎

  10、InnoDB数据库文件

    默认所有InnoDB表的数据和索引放置于同一个表空间中

    表空间文件:datadir定义的目录下

    数据文件:ibddata1, ibddata2, ...

    每个表单独使用一个表空间存储表的数据和索引

      启用方法:编辑配置文件innodb_file_per_table=ON

    两类文件放在数据库独立目录中

      数据文件(存储数据和索引):tb_name.ibd

      表格式定义:tb_name.frm

 

MyISAM引擎特点

  1、不支持事务

  2、表级锁定

  3、读写相互阻塞,写入不能读,读时不能写

  4、只缓存索引

  5、不支持外键约束

  6、不支持聚簇索引

  7、读取数据较快,占用资源较少

  8、不支持MVCC(多版本并发控制机制)高并发

  9、崩溃恢复性较差

  10、MySQL5.5.5前默认的数据库引擎

  11、MyISAM存储引擎适用场景

    只读(或者写较少)、表较小(可以接受长时间进行修复操作)

  12、MyISAM引擎文件

    tbl_name.frm 表格式定义

    tbl_name.MYD 数据文件

    tbl_name.MYI 索引文件

 
管理存储引擎命令
  1、查看mysql支持的存储引擎

    show engines;

  2、查看当前默认的存储引擎

    show variables like ‘%storage_engine%‘;

  3、设置默认的存储引擎

    vim /etc/my.conf

    [mysqld]

    default_storage_engine= InnoDB

  4、查看库中所有表使用的存储引擎

    show table status from db_name;

  5、查看库中指定表的存储引擎

    show table status like ‘ tb_name ‘;

    show create table tb_name;

  6、设置表的存储引擎:

    CREATE TABLE tb_name(... ) ENGINE=InnoDB;

    ALTER TABLE tb_name ENGINE=InnoDB;

 

MySQL之存储引擎

标签:%s   能力   nes   编辑   show   sql   myisam   相关   数据文件   

原文地址:https://www.cnblogs.com/ysuwangqiang/p/11811100.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!