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;
  • 相关阅读:
    项目冲刺——第三篇
    项目冲刺——第五篇
    项目冲刺——第四篇
    团队作业第3周——需求改进&系统设计
    复审与事后分析
    事后诸葛亮分析报告
    团队作业第5周——测试与发布(Alpha版本)
    第四周进销存管理系统冲刺博客汇总
    第三篇 进销存管理系统冲刺博客
    团队作业第3周——需求改进&系统设计
  • 原文地址:https://www.cnblogs.com/ywrj/p/9417763.html
Copyright © 2011-2022 走看看