zoukankan      html  css  js  c++  java
  • Mysql常用的存储引擎

    存储引擎

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

    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来回交互

         

  • 相关阅读:
    修改spring源码重写classloader实现项目加密
    Java验证工具类
    jsp相关基础知识
    HTTP协议详细分析
    Java获取Linux和Window系统CPU、内存和磁盘总使用率的情况
    关于Genymotion下载比较慢的解决办法
    Android Studio:Failed to resolve ***
    ActionBar设置自定义setCustomView()留有空白的问题
    Service是什么?Service又不是什么?
    Socket--Android王国的外交发言人
  • 原文地址:https://www.cnblogs.com/yxh168/p/9163759.html
Copyright © 2011-2022 走看看