博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql常用的存储引擎
阅读量:5036 次
发布时间:2019-06-12

本文共 1224 字,大约阅读时间需要 4 分钟。

存储引擎

    存储引擎是表级别的概念,不同的存储引擎保存数据和索引的方式是不相同的.

 

MyISAM存储引擎

        MyISAM最典型的性能问题就是表锁的问题.  MyISAM只将数据写到内存中,然后等待操作系统定期将数据刷到磁盘上.

        不支持事务

        表级锁定

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

        只缓存索引

        不支持外键约束

        不支持聚簇索引

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

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

        崩溃恢复性较差

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

     适用场景:只读(或者写较少),表较小(可以接受长时间进行修复操作)

     MyISAM引擎文件: 

          tbl_name.frm: 表格式定义 

          tbl_name.MYD: 数据文件 

          tbl_name.MYI: 索引文件 

 

InnoDB引擎特点

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

      行级锁

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

      可缓存数据和索引

      支持聚簇索引

      崩溃恢复性更好

      支持MVCC高并发

      从MySQL5.5后支持全文索引

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

      InnoDB数据库文件

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

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

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

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

                启用:innodb_file_per_table=ON     

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

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

                表格式定义:tb_name.frm 

 

CSV引擎

   CSV存储引擎使用逗号分隔值格式将数据存储在文本文件中.可以使用 CSV引擎以CSV格式导入和导出其他软件和应用程序之间的数据交换 

 

管理存储引擎

     查看mysql支持的存储引擎: 

             show engines;

    查看当前默认的存储引擎: 

            show variables like '%storage_engine%';   

     设置默认的存储引擎: 

      vim /etc/my.conf 

        [mysqld] 

        default_storage_engine= InnoDB; 

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

          show table status from db_name;

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

         show table status like ‘tb_name‘; 

         show create table tb_name;

     设置表的存储引擎:

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

         ALTER TABLE  tb_name  ENGINE=InnoDB; 

 

 选择合适的引擎

   事务

   备份

   崩溃恢复

   特有的特性

 

MySQL分层架构

     上层是服务器层的服务和查询执行引擎

     下层是存储引擎

      存储引擎和服务层之间处理查询的时候通过API来回交互

     

转载于:https://www.cnblogs.com/yxh168/p/9163759.html

你可能感兴趣的文章
java序列化和反序列化
查看>>
绝对定位
查看>>
flink源码编译(windows环境)
查看>>
dpkg 删除 百度网盘 程序
查看>>
服务器nginx安装
查看>>
std::nothrow
查看>>
rest-framework 分页器
查看>>
JQuery(一)安装&选择器 样式篇
查看>>
浏览器的DNS缓存查看和清除
查看>>
浏览器跨域问题
查看>>
HTML5 input控件 placeholder属性
查看>>
使用JAVA如何对图片进行格式检查以及安全检查处理
查看>>
html5实现移动端下拉刷新(原理和代码)
查看>>
iPhone开发中从一个视图跳到另一个视图有三种方法:
查看>>
pytho logging
查看>>
一个Java程序员应该掌握的10项技能
查看>>
c#英文大小写快捷键
查看>>
tpframe免费开源框架又一重大更新
查看>>
一.go语言 struct json相互转换
查看>>
什么是架构设计
查看>>