栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mysq索引优化、如何避免死锁

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mysq索引优化、如何避免死锁

1、使用覆盖索引来避免回表。

2、使用自增字段作为主键优化查询。

3、前缀索引,减少索引存在页,进而在查询是减少io,提高效率。

        order by 无法使用前缀索引,无法把前缀索引作为覆盖索引。

4、如果查询条件中使用or,且or的前后条件中有一个列没有索引,那么涉及索引都不会被使用到。

5、可以尝试通过force index 来强制使用索引。

6、mysql事务的隔离性通过 锁来实现,事务的原子性和一致性通过undolog和mvcc实现。

事务的持久性通过redolog + binlog 来保证

7、行锁的具体实现算法 record lock、gap lock 以及 next-key lock。 常见死锁是在rr事务隔离级别下 select for update 会加gap lock。

8、避免的死锁方式 设置超时时间 innodb_lock_wait_timeout 来设置超时时间,避免相互等待;避免长事务,将事务拆解,降低与其他事务发生冲突的概率。打开死锁检测 innodb_deadlock_detect = on 打开死锁检测,发生则mysql自主选择回滚。

9、共享锁和排他锁属于行锁,意向锁属于表锁。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/572313.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号