• MySQL存储引擎介绍


    mysql数据库常用的三种存储引擎: 

    数据库的存储引擎:5.6版本之后的默认为InnoDB存储,5.5版本之前的默认是MyISAM存储引擎
    1.第一种myisam:三个文件
    (1)表结构存文件、数据文件、搜索目录三个文件都存放在硬盘上
    (2)应用于以读和插入为主的操作,很少的更新和删除
    (2)不支持事务安全、不支持外键、不支持行级锁,表级锁严重影响并发

    2.第二种innodb:两个文件
    (1)表结构文件、数据和搜索目录文件都存放在硬盘上
    (2)支持支持外键、支持行级锁、表级锁、事务安全确保事务的完整提交和回滚,
    (3)
    3.第三种memory:两个文件
    (1)表结构存储在硬盘,数据存储在内存,对表的大小有限制
    (2)读写速度快,关机会导致内存数据的丢失,多用于热新闻

    MyISAM和InnoDB区别

    MyISAM是MySQL的默认数据库引擎(5.5版之前)。虽然性能极佳,而且提供了大量的特性,包括全文索引、压缩、空间函数等,但MyISAM不支持事务和行级锁,而且最大的缺陷就是崩溃后无法安全恢复。不过,5.5版本之后,MySQL引入了InnoDB(事务性数据库引擎),MySQL 5.5版本后默认的存储引擎为InnoDB。

    大多数时候我们使用的都是 InnoDB 存储引擎,但是在某些情况下使用 MyISAM 也是合适的比如读密集的情况下。(如果你不介意 MyISAM 崩溃回复问题的话)。

    两者的对比:

    1. 是否支持行级锁 : MyISAM 只有表级锁(table-level locking),而InnoDB 支持行级锁(row-level locking)和表级锁,默认为行级锁。

    2. 是否支持事务和崩溃后的安全恢复:MyISAM 强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持。但是InnoDB 提供事务支持事务,外部键等高级数据库功能。具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。

    3. 是否支持外键: MyISAM不支持,而InnoDB支持。

    4. 是否支持MVCC :仅 InnoDB 支持。应对高并发事务, MVCC比单纯的加锁更高效;MVCC只在 READ COMMITTED 和 REPEATABLE READ 两个隔离级别下工作;MVCC可以使用 乐观(optimistic)锁 和 悲观(pessimistic)锁来实现;各数据库中MVCC实现并不统一。推荐阅读:MySQL-InnoDB-MVCC多版本并发控制https://segmentfault.com/a/1190000012650596

    存储引擎在mysql中的使用  

      存储引擎相关sql语句

    查看当前的默认存储引擎:
        mysql> show variables like "default_storage_engine";
        +------------------------+--------+
        | Variable_name          | Value  |
        +------------------------+--------+
        | default_storage_engine | InnoDB |
        +------------------------+--------+
        1 row in set (0.00 sec)
    查看当前的默认存储引擎
    查询当前数据库支持的存储引擎:
        mysql> show engines G;
    查询当前数据库支持的存储引擎

      指定存储引擎建表  

    mysql> create table ai(id bigint(12),name varchar(200)) ENGINE=MyISAM; 
    
    mysql> create table country(id int(4),cname varchar(50)) ENGINE=InnoDB;
    
    也可以使用alter table语句,修改一个已经存在的表的存储引擎。
    
    mysql> alter table ai engine = innodb;
    在建表时指定
    #my.ini文件
    [mysqld]
    default-storage-engine=INNODB
    在配置文件.ini中指定
    
    
  • 相关阅读:
    抽象类abstract
    final关键字特点
    继承ExtendsFour
    继承(继承中构造方法的关系)
    继承ExtendsTwo-super&this
    继承ExtendsOne
    静态
    构造方法与setXxx方法
    15.8
    15.7
  • 原文地址:https://www.cnblogs.com/open-yang/p/11411668.html
Copyright © 2020-2023  润新知