河北seo优化_网络建设营销_网站推广服务 - 河北邢台seo,网站建设运行情况报告,小程序开发公司排行,汉鼎中国 网站建设好文推荐#xff1a;
【数据库】快速理解脏读、不可重复读、幻读-CSDN博客
再探幻读#xff01;什么是幻读?为什么会产生幻读#xff0c;MySQL中是怎么解决幻读的#xff1f;-CSDN博客
引擎
mysql默认引擎#xff1a;innodb
1.支持行锁 2.支持事务 3.支持外键
索引…好文推荐
【数据库】快速理解脏读、不可重复读、幻读-CSDN博客
再探幻读什么是幻读?为什么会产生幻读MySQL中是怎么解决幻读的-CSDN博客
引擎
mysql默认引擎innodb
1.支持行锁 2.支持事务 3.支持外键
索引
索引之btree和b-tree
btree数据都在叶子结点叶子节点通过链表连在一起 为什么使用b树
1.相比于二叉树高度大大减小每一层高度意味着io读写性能大大降低 2.相比于b树因为非叶子节点只存储索引每一页可以存更多的索引降低高度 3.可范围查询
从上一节中的B-Tree结构图中可以看到每个节点中不仅包含数据的key值还有data值。而每一个页的存储空间是有限的如果data数据较大时将会导致每个节点即一个页能存储的key的数量很小当存储的数据量很大时同样会导致B-Tree的深度较大增大查询时的磁盘I/O次数进而影响查询效率。在BTree中所有数据记录节点都是按照键值大小顺序存放在同一层的叶子节点上而非叶子节点上只存储key值信息这样可以大大加大每个节点存储的key值数量降低BTree的高度。
聚集索引索引和数据存在一起叶子节点存的是该行数据
二级索引索引和数据分开存储叶子节点存储的是主键 select * from where name Anc需要现在二级索引的bshu找到其主键然后在聚集索引找到该id下的该行数据称为回表查询 建立(username,password)联合索引这样覆盖索引不用回表查询
尽量使用联合索引而不是单列索引因为联合索引很多时候可以覆盖索引不用回表查询
锁
MyISAM 仅仅支持表级锁(table-level locking)一锁就锁整张表这在并发写的情况下性非常差。InnoDB 不光支持表级锁(table-level locking)还支持行级锁(row-level locking)默认为行级锁。
行级锁的粒度更小仅对相关的记录上锁即可对一行或者多行记录加锁所以对于并发写入操作来说 InnoDB 的性能更高。
表级锁对整张表进行加锁并发下效率极低myisam和innodb都支持
行级锁
MySQL 中锁定粒度最小的一种锁是 针对索引字段加的锁 只针对当每行数据进行加锁。 其加锁粒度最小并发度高但加锁的开销也最大加锁慢会出现死锁。