- 博客(3)
- 收藏
- 关注
转载 MySQL索引15连问,抗住!
当查询的数据在索引树中,找不到的时候,需要回到主键索引树中去获取,这个过程叫做回表。比如在第6小节中,使用的查询SQL需要查询所有列的数据,idx_age普通索引不能满足,需要拿到主键id的值后,再回到id主键索引查找获取,这个过程就是回表。如果我们查询SQL的select *修改为的话,其实是不需要回表的。因为id和age的值,都在idx_age索引树的叶子节点上,这就涉及到覆盖索引的知识点了。覆盖索引是select的数据列只用从索引中就能够取得,不必回表,换句话说,查询列要被所建的索引覆盖。
2023-02-24 09:44:13 72
转载 MYSQL数据库锁的12连问
什么是死锁?死锁是指两个或多个事务在同一资源上相互占用,并请求锁定对方的资源,从而导致恶性循环的现象。如何防止死锁?尽量约定固定的顺序访问表,因为交叉访问更容易造成事务等待回路。尽量避免大事务,建议拆成多个小事务。因为大事务占用的锁资源越多,越容易出现死锁。降低数据库隔离级别,比如RR降低为RC,因为RR隔离级别,存在GAP锁,死锁概率大很多。死锁与索引是密不可分的,合理优化你的索引,死锁概率降低。如果业务处理不好可以用分布式事务锁或者使用乐观锁。
2023-02-24 09:41:29 137
转载 详解yii2实现分库分表的方案与思路
前言大家可以从任何一个gii生成model类开始代码上溯,会发现:yii2的model层基于ActiveRecord实现DAO访问数据库的能力。而ActiveRecord的继承链可以继续上溯,最终会发现model其实是一个component,而component是yii2做IOC的重要组成部分,提供了behaviors,event的能力供继承者扩展。(IOC,component,behaviors,event等概念可以参考http://www.digpage.com/学习)先不考虑上面的一堆概念,一个站点发
2022-12-21 09:47:54 502
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人