MySQL
赚够壹仟万
纯菜b只想找到份好工作
展开
-
MySql只操作同一条记录,也会发生死锁吗?
为了避免这种问题的发生,可以在程序中设置获得锁的顺序,例如只能按照先获得主键索引 --> 普通索引的顺序获取锁,避免死锁的发生。如果刚好在这时,有另外一个线程已经拿到了当前主键索引的锁,同时尝试去在该事务中去拿记录的普通索引的锁。这时候就会发生死锁。当我们在事务中,更新一条记录的时候,如果用到普通索引作为条件,那么会先获取普通索引的锁,然后再尝试获取主键索引的锁。原创 2024-06-18 09:50:10 · 221 阅读 · 0 评论 -
MySQL索引一遵循最左前缀匹配吗?
索引底层是一个B+树,如果是联合索引的话,在构造B+树的时候,会先按照左边的Key进行排序,左边的key相同时再依次按照右边的key排序。所以,通过索引查询的时候,也需要遵守最左前缀匹配机制,也就是需要从联合索引最左边开始进行匹配,这时候就要求查询语句的where条件中,包含最左边的索引值。原创 2024-06-19 10:02:01 · 299 阅读 · 0 评论 -
MySQL中什么是索引合并?
索引合并是数据库查询优化的一种技术,它允许数据库管理系统在处理查询时,利用多个索引来改进数据检索的效率。这种技术主要应用在那些设计多个条件的查询中,通过合并多个索引的结果集,找出最终满足所有条件的数据行。在MySQL中如果使用了索引合并,执行计划中会明确显示type为index_merge,key中列出用到的索引列表,并且在extra中会提示具体用了哪种索引合并策略。上述这种情况两个列之间用and连接会使用。上述这种情况两个列之间用or连接会使用。原创 2024-06-22 09:04:59 · 239 阅读 · 0 评论