MySql数据库理解
2018-11-09 02:37:35来源:博客园 阅读 ()
在之前的面试过程中,有被问到很多次,关于MySQL数据库相关知识,其中有问到了解存储引擎,数据库优化等问题,问得一脸懵X,确实以前在学习的时候没有去深入了解过这一块儿,今天找到了相应的数据库视频,稍稍做一点点总结。
一、MySQL数据库的存储引擎分类
如下图所示:
从上图可以看出,各种存储引擎之间的区别:
其中MySql5.5版本默认使用的是InnoDB存储引擎。当然,其中也有提到关于锁的概念。
特别对比:
MyISAM :存储限制可达256TB,支持索引、表级别锁以及数据压缩。
InnoDB : 存储限制为64TB,支持事务和索引,锁颗粒为行锁,但并不支持数据压缩,唯独只有它支持外键!
二、MySQL数据库锁的概念:
通常,在一个web项目中,对于数据库表查询是很容易产生并发情况的,例如某一个用户正在对其中一张表的t_name字段进行修改,而此时另外一个用户也在对这张表进行查询,那么就很有可能导致读取的用户读到不正确的数据。所以,就产生了表锁。
其中,我已知的针对数据库表的锁有悲观锁、乐观锁、排他锁、共享锁、表锁、行锁等。
悲观锁:顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。
乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量。像数据库如果提供类似于write_condition机制的其实都是提供的乐观锁。
更多知识下回分解。。。。。。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- JSP+SSH+Mysql+DBCP实现的租车系统 2020-06-09
- JSP+Structs+JDBC+mysql实现的诚欣电子商城 2020-06-08
- 深入理解:设计模式中的七大设计原则 2020-06-07
- 通俗理解spring源码(六)—— 默认标签(import、alias、be 2020-06-07
- Java高级实战Maven+JSP+SSM+Mysql实现的音乐网站,70%人不会 2020-06-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash