MySQL引擎
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL引擎,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2201字,纯文字阅读大概需要4分钟。
内容图文
![MySQL引擎](/upload/InfoBanner/zyjiaocheng/521/be89a6bd59ca40bbb2da57daa0662789.jpg)
1、引擎分类
1.1 InnoDB
是系统的默认引擎,是一个事务型的存储引擎,有行级锁定和外键约束。
1.2 MyISAM
没有提供对数据库事务的支持,也不支持行级锁和外键,因此当INSERT(插入)或UPDATE(更新)数据时即写操作需要锁定整个表,效率便会低一些。
1.3 Archive
档案存储引擎只支持INSERT和SELECT操作,适合日志和数据采集类应用,占空间小。
1.4 Blackhole
不保存数据;
1.5 CSV
可以将普通的CSV文件作为MySQL表处理,但不支持索引;
可以作为一种数据交换的机制,非常有用。
1.6 Memory、Merge、Federated(略)
2、InnoDB和MyISAM的对比
MyISAM | InnoDB | |
外键 | 不支持 | 支持 |
事务 | 不支持 | 支持 |
行/表锁 |
表锁,即使操作一条记录也会锁住整个表,不适合高并发操作 |
行锁,操作时只锁一行,不对其他行有影响,适合高并发的操作 |
缓存 | 只缓存索引,不缓存真实数据 | 不仅缓存索引还缓存真实数据,对内存要求较高,而且内存大小队性能有决定性影响 |
关注 | 节省资源、消耗少,简单业务 | 并发写、事务、更大资源 |
3、事务(Transaction)
3.1 为什么需要事务?
为保持数据的一致性。
例如A给B转1000,这是一个操作,数据库层面A会执行 -1000,B也要执行+1000;两个sql操作一个没成功就会让数据变得异常,会导致后续的一系列问题。
3.2 事务的ACID原则
原子性(atomicity):
一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性(consistency):
在事务开始之前和事务结束之后数据库中数据的完整性没有被破坏,(比如:A向B转账,不可能A扣了钱,B却没有收到);
隔离性(isolation):
一个事务的执行不被其他事务影响;
持久性(durability):
事务一旦提交,无论系统发生什么问题,结果都不会被影响;
4、为什么InnoDB必须有主键,并且推荐使用整型的自增主键
因为InnoDB的底层数据结构是B+Tree,必须需要一个主键才可以组织起来(主键值去做节点数据,表数据存储在叶子节点)。如果表没有设置主键,则Mysql会自动的帮你找到一个合适的唯一索引作为主键,若找不到符合条件唯一索引条件的字段时,会生成类似于ROW_ID的虚拟列充当该InnoDB表的主键;
整型的存储比字段类型要小,对比效率是高于其他数据结构的,字符串等。
自增的话每次新增的索引就是有序的,只需要在最右边的数据中插入新的数据即可。插入的时候效率更高。
MySQL引擎
标签:OLE nod atom 设置 就会 档案 abi 并发 数据结构
本文系统来源:https://www.cnblogs.com/xp2h/p/12458569.html
内容总结
以上是互联网集市为您收集整理的MySQL引擎全部内容,希望文章能够帮你解决MySQL引擎所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。