zoukankan      html  css  js  c++  java
  • mysql之存储引擎

     MySQL 常用的两种存储引擎:MyISAM、InnoDB

    myisam

    MyISAM 存储引擎是 MySQL 关系数据库系统 5.5 版本之前默认的存储引擎,前身是 ISAM。

    ISAM 的特点:ISAM 执行读取操作的速度很快,而且占用不大量的内存和存储资源,它不支持事务处理,不能够容错。

    MyISAM 的特点: 

    (1)不支持事务

    (2)数据更新时锁定整个表

    (3)数据库在读写过程中相互阻塞

    (4)缓存只会缓存索引文件,不会缓存数据 

    (5)因为功能弱 所以速度过程较快而且占用资源相对较少。

    (6)不支持外键约束,只支持全文索引 

    (7)每个 MyISAM 在磁盘上存储成三个文件,每一个文件的名字以表的名字开始,扩展名指出文件类型.frm 文件存储表定义.MYD 文件存储数据(MYData).MYI 文件存储索引文件(MYIndex)

    MyISAM 使用的生成场景:

    (1)业务不需要事务支持

    (2)一般单方读取数据比较多的业务,或单方面写入数据比较多的业务,不适合读写都频繁的场合

    (3)对数据业务一致性要求不是非常高的业务

    (4)读写并发访问相对较低的业务 纯读纯写高并发的也可以

    (5)数据修改相对较少的业务

    (6)服务器硬件资源相对比较差

    InnoDB

    InnoDB 的特点 :

    (1)支持 4 个事务隔离级别

    (2)行级锁定,但是全表扫描仍然会是表级锁定

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

    (4)具有非常高效的缓存特性:能缓存索引,也能缓存数据

    (5)表与主键以簇的方式存储

    (6)支持分区、表空间,类似 oracle 数据库

    (7)支持外键约束

    (8)对硬件资源要求比较高

    InnoDB 使用的生成场景 :

    (1)业务需要事务的支持

    (2)行级锁定对高并发有很好的适应能力,但需要确保查询是通过索引来完成

    (3)业务数据更新较为频繁的场景,如:论坛,微博

    (4)业务数据一致性要求较高,如:银行业务

    (5)硬件设备内存较大,利用 InnoDB 较好的缓存能力来提高内存利用率,减少磁盘 IO

    的压力。

    企业选择存储引擎的依据

    1、考虑每个存储引擎提供了哪些不同的核心功能及应用场景

    2、支持的字段和数据类型

    3、锁定类型 表锁定:MyISAM、MEMORY  行锁定:InnoDB  页锁定:BDB

    4、索引的支持

    5、事务处理的支持

    配置适合的存储引擎

    查看数据库可配置的存储引擎 

    mysql> show engines ;          #Support 为DEFAULT的表示当前mysql使用的默认引擎

    查看表使用的存储引擎 

    方法一

    show table status from 库名 where name='表' G;  #engine为使用的储存引擎   

    方法二

    show create table 表名G;    

     配置存储引擎为所选择的类型 

    方法一  修改表的默认引擎

    alter table 表名 engine=引擎;

    方法二   修主配文件的默认引擎

    vim my.cnf

    [mysqld]

    #default-storage-engine = MYISAM  修改为  default-storage-engine = innoDB

    重启mysql 重新登入

    方法三     建表时指定引擎

    create table 表名(表格式) engine=innodb;
  • 相关阅读:
    [MacOS]Sublime text3 安装(一)
    [RHEL8]开启BBR
    PAT Advanced 1136 A Delayed Palindrome (20分)
    PAT Advanced 1144 The Missing Number (20分)
    PAT Advanced 1041 Be Unique (20分)
    PAT Advanced 1025 PAT Ranking (25分)
    PAT Advanced 1022 Digital Library (30分)
    PAT Advanced 1019 General Palindromic Number (20分)
    PAT Advanced 1011 World Cup Betting (20分)
    PAT Advanced 1102 Invert a Binary Tree (25分)
  • 原文地址:https://www.cnblogs.com/ywrj/p/9417763.html
Copyright © 2011-2022 走看看