****间隙锁实质上是对索引前后的间隙上锁,不对索引本身上锁。
***根据检索条件向左寻找最靠近检索条件的记录值A,作为左区间,向右寻找最靠近检索条件的记录值B作为右区间,即锁定的间隙为(A,B)。
间隙锁的目的是为了防止幻读,其主要通过两个方面实现这个目的:
(1)防止间隙内有新数据被插入。
(2)防止已存在的数据,更新成间隙内的数
explain:
type
该属性表示访问类型,有很多种访问类型。
最常见的其中包括以下几种: ALL(全表扫描), index(索引扫描),range(范围扫描),ref (非唯一索引扫描),eq_ref(唯一索引扫描,),(const)常数引用, 访问速度依次由慢到快。
其中 : range(范围)常见于 between and …, 大于 and 小于这种情况。
https://blog.csdn.net/choath/article/details/80779129
Extra
这个属性非常重要,该属性中包括执行SQL时的真实情况信息,如上面所属,使用到的是”using where”,表示使用where筛选得到的值,常用的有:
“Using temporary”: 使用临时表 “using filesort”: 使用文件排序
创建联合索引:
ALTER TABLE test ADD INDEX `sindex` (`aaa`,`bbb`,`ccc`);
传引用的理解就是引用和赋值的变量共用了一块地址空间
传值与引值:
传值赋值:
$a = $b;
$a 和 $b 没有关系,各是各的;
引用赋值:
$a = 3;
$b = 9;
$a =&$b;
echo $a,'~',$b,'<br />'; // 9~9
当改变一个变量值,另一个变量也改变;
当销毁一个变量值,另一个变量仍指向地址;
/* 变量的一个机制
当某段地址的值,有变量在指向时,就不会回收;*/
参考:mysql优化 : https://www.cnblogs.com/wingsless/p/10101648.html
https://www.cnblogs.com/crazylqy/p/7611069.html
https://segmentfault.com/a/1190000020460727?utm_source=tag-newest
SELECT COUNT(*)
,SELECT COUNT(1)
和SELECT COUNT(具体字段)分析