zoukankan      html  css  js  c++  java
  • MySQL数据库存储引擎

    MySQL中都有哪些存储引擎?

    存储引擎是MySQL数据库的一个重要特征,为了提高MySQL数据库的使用效率和灵活性,我们需要根据实际的需求来选择合适的存储引擎。查看MySQL数据库都支持哪些存储引擎,可以通过命令:show enginesG; 结果如下:

    *************************** 1. row ***************************
          Engine: FEDERATED
         Support: NO
         Comment: Federated MySQL storage engine
    Transactions: NULL
              XA: NULL
      Savepoints: NULL
    *************************** 2. row ***************************
          Engine: MRG_MYISAM
         Support: YES
         Comment: Collection of identical MyISAM tables
    Transactions: NO
              XA: NO
      Savepoints: NO
    *************************** 3. row ***************************
          Engine: MyISAM
         Support: YES
         Comment: MyISAM storage engine
    Transactions: NO
              XA: NO
      Savepoints: NO
    *************************** 4. row ***************************
          Engine: BLACKHOLE
         Support: YES
         Comment: /dev/null storage engine (anything you write to it disappears)
    Transactions: NO
              XA: NO
      Savepoints: NO
    *************************** 5. row ***************************
          Engine: CSV
         Support: YES
         Comment: CSV storage engine
    Transactions: NO
              XA: NO
      Savepoints: NO
    *************************** 6. row ***************************
          Engine: MEMORY
         Support: YES
         Comment: Hash based, stored in memory, useful for temporary tables
    Transactions: NO
              XA: NO
      Savepoints: NO
    *************************** 7. row ***************************
          Engine: ARCHIVE
         Support: YES
         Comment: Archive storage engine
    Transactions: NO
              XA: NO
      Savepoints: NO
    *************************** 8. row ***************************
          Engine: InnoDB
         Support: DEFAULT
         Comment: Supports transactions, row-level locking, and foreign keys
    Transactions: YES
              XA: YES
      Savepoints: YES
    *************************** 9. row ***************************
          Engine: PERFORMANCE_SCHEMA
         Support: YES
         Comment: Performance Schema
    Transactions: NO
              XA: NO
      Savepoints: NO
    View Code MySQL支持的存储引擎

    通过上面的规范我们可以看到,MySQL数据库有9中存储引擎,其中 Engine 标识引擎的名称,Support 表示当前是否支持这种存储引擎,Comment 是对这种存储引擎的简单介绍,Transactions 表示是否支持事务,XA 表示存储引擎锁支持的分布式是否符合XA规范,Savepoints 表示是否支持事务处理中的保存点。通诺上面的结果我们恶意发现MySQL的默认存储引擎是 InnoDB,该种存储引擎支持事务,行级锁,和外键关联。 

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

    mysql> show variables like 'storage_engine%';
    +----------------+--------+
    | Variable_name  | Value  |
    +----------------+--------+
    | storage_engine | InnoDB |
    +----------------+--------+
    1 row in set (0.00 sec)

    修改MySQL默认的存储引擎

      有一种图形化界面的方式可以修改,但是在这里我不作介绍,我介绍的是通过修改MySQL的配置文件来修改默认的存储引擎:

      找到<MySQL_HOME>/my.ini 文件,我的MySQL是安装在Windows7上面的,找到安装目录 C:ProgramDataMySQLMySQL Server 5.6,里面有一个配置文件 my.ini.打开。(mac 和Linux的应该也差不多,总之有个安装目录)

      修改[mysqld] 组中 default-storage-engine 的配置项,(找不到直接搜索),修改为MySQL支持的存储引擎即可。 修改完成后保存,重启MySQL。

    # The default storage engine that will be used when create new tables when
    default-storage-engine=MyISAM

      再次查看默认存储引擎

    mysql> show variables like 'storage_engine%';
    +----------------+--------+
    | Variable_name  | Value  |
    +----------------+--------+
    | storage_engine | MyISAM |
    +----------------+--------+
    1 row in set (0.00 sec)

     常用存储引擎的主要特性和如何选择?

    特性 MyISAM MEMORY InnoDB
    存储限制 yes 64TB yes
    事务安全 no yes no
    锁机制 表锁 行锁 表锁
    B树索引 yes yes yes
    哈希索引 no no yes
    全文索引 yes no no
    集群索引 no yes no
    数据缓存 N/A yes yes
    索引缓存 yes yes yes
    数据可压缩 yes no no
    空间使用 N/A
    内存使用
    批量插入的速度
    支持外键 no yes no

    常见的三种存储引擎应用场合:

    MyISAM: 不支持事务,也不支持外键,所以访问速度比较快,因此对事务完整性没有要求并以访问为主的应用场合比较使用。

    MEMORY:使用内存来存储数据,虽然访问速度比较快,但是安全性没有保障,如果应用中涉及数据比较小,而且需要快速访问的时候,可以使用。

    InnoDB:在事务上具有优势,具有事务提交、回滚、崩溃回复能力的事务封装,因此比MyISAM占用更多的存储空间。因此需要进行频繁的更新、删除操作时,同时还对事务的完整性比较高,需要实现并发控制,适合使用该存储引擎。

  • 相关阅读:
    基于Visual C++2013拆解世界五百强面试题--题13-找最大公共子字符串
    基于Visual C++2013拆解世界五百强面试题--题12-进制转换
    Color颜色对照表
    根据选择打开相应的程序
    复制一个5G文件只需要两秒,全网最牛方法!
    判断一个男人穷还是富,只看这几点!
    判断一个男人穷还是富,只看这几点!
    判断一个男人穷还是富,只看这几点!
    16年国庆假期期间兼职所悟
    16年国庆假期期间兼职所悟
  • 原文地址:https://www.cnblogs.com/ytuan996/p/10594793.html
Copyright © 2011-2022 走看看