mysql存储引擎

MySQL的InnoDB和MyISAM是两种主要的存储引擎,各有优缺点。InnoDB提供事务处理和外键支持,适合高并发和数据完整性要求高的场景,而MyISAM则以快速读取和插入著称,适用于读多写少的应用。默认存储引擎从MySQL 5.5开始由MyISAM变为InnoDB。选择存储引擎需根据应用需求考虑事务安全、并发性能等因素。
摘要由CSDN通过智能技术生成

Mysql存储引擎

  • MySQL 针对不同的存储需求可以选择最优的存储引擎,存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式 。存储引擎是基于的,而不是基于库的。所以存储引擎也可被称为表类型。
  • MySQL5.0支持的存储引擎包含 : InnoDB 、MyISAM 、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等
  • show engines 查询当前数据库支持的存储引擎
  • 创建表时如果不指定存储引擎,那么系统就会使用默认的存储引擎,MySQL5.5之前的默认存储引擎是MyISAM,5.5之后就改为了InnoDB。
    show variables like '%storage_engine%' ;查看默认的存储引擎
  • 存储引擎特性
    InnoDB:支持事务,行锁,支持外键,空间使用高,内存使用高,批量插入速度低
    MyISAM:表锁,空间使用低,内存使用低,批量插入速度高
InnoDB
  • InnoDB存储引擎是Mysql的默认存储引擎。InnoDB存储引擎提供了具有提交、回滚、崩溃恢复能力的事务安全。
  • 但是对比MyISAM的存储引擎,InnoDB写的处理效率差一些,并且会占用更多的磁盘空间以保留数据和索引。
  • MySQL支持外键的存储引擎只有InnoDB , 在创建外键时, 父表必须有对应的索引 , 子表在创建外键时, 会自动的创建对应的索引。
  • InnoDB 存储表和索引有以下两种方式 :
    ① 使用共享表空间存储, 这种方式创建的表的表结构保存在.frm文件中, 数据和索引保存在innodb_data_home_dir 和 innodb_data_file_path定义的表空间中,可以是多个文件。
    ② 使用多表空间存储, 这种方式创建的表的表结构仍然存在 .frm 文件中,但是每个表的数据和索引单独保存在.ibd 中。
MyISAM
  • MyISAM 不支持事务、也不支持外键,其优势是访问的速度快,对事务的完整性没有要求或者以SELECT、INSERT为主的应用基本上都可以使用这个引擎来创建表 。
存储引擎的选择
  • InnoDB : 是Mysql的默认存储引擎,用于事务处理应用程序,支持外键。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询意外,还包含很多的更新、删除操作,那么InnoDB存储引擎是比较合适的选择。
  • InnoDB存储引擎除了有效的降低由于删除和更新导致的锁定, 还可以确保事务的完整提交和回滚,对于类似于计费系统或者财务系统等对数据准确性要求比较高的系统,InnoDB是最合适的选择。
  • MyISAM : 如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不是很高,那么选择这个存储引擎是非常合适的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值