note-2021-6



"""
1.主索引和普通索引的区别:
https://blog.csdn.net/weixin_34365336/article/details/113210071
而在InnoDB引擎中,主键索引和辅助索引的区别就很大了。主键索引会被选中作为聚集索引,而唯一索引和普通辅助索引间除了唯一性约束外,在存储上没本质区别。
二者差别
一个主文件仅有一个主索引,但可以有多个辅助索引;
主索引通常建立在主码/排序码上面;
可以利用主索引重新组织主文件数据,辅助索引不可

2.mysql联合索引
联合索引又叫复合索引。对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。
例如索引是key index (a,b,c)。 可以支持a | a,b| a,b,c 3种组合进行查找,
但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效。

两个或更多个列上的索引被称作复合索引。

利用索引中的附加列,您可以缩小搜索的范围,但使用一个具有两列的索引 不同于使用两个单独的索引。
复合索引的结构与电话簿类似,人名由姓和名构成,电话簿首先按姓氏对进行排序,然后按名字对有相同姓氏的人进行排序。
如果您知 道姓,电话簿将非常有用;如果您知道姓和名,电话簿则更为有用,但如果您只知道名不姓,电话簿将没有用处。

所以说创建复合索引时,应该仔细考虑列的顺序。对索引中的所有列执行搜索或仅对前几列执行搜索时,复合索引非常有用;
仅对后面的任意列执行搜索时,复合索引则没有用处。

原文链接:https://blog.csdn.net/weixin_42136826/article/details/113300900

三.mysql创建索引原则:
https://blog.csdn.net/ztx114/article/details/100033662
1.选择唯一性索引
2.为经常需要排序、分组和联合操作的字段建立索引
3.为常作为查询条件的字段建立索引
5.尽量使用数据量少的索引
6.尽量使用前缀来索引

四。索引失效的情况:
https://www.cnblogs.com/wdss/p/11186411.html
1、like 以%开头,索引无效;当like前缀没有%,后缀有%时,索引有效。
eg:explain select * from table where name like "%xxx%";
2、or语句前后没有同时使用索引。当or左右查询字段只有一个是索引,该索引失效,只有当or左右查询字段均为索引时,才会生效
3、组合索引,不是使用第一列索引,索引失效。
4、数据类型出现隐式转化。如varchar不加单引号的话可能会自动转换为int型,使索引无效,产生全表扫描。
6、在索引字段上使用not,<>,!=。不等于操作符是永远不会用到索引的,因此对它的处理只会产生全表扫描。 优化方法: key<>0 改为 key>0 or key<0。
7、对索引字段进行计算操作、字段上使用函数。(索引为 emp(ename,empno,sal))
8、当全表扫描速度比索引速度快时,mysql会使用全表扫描,此时索引失效。
可以使用explain命令加在要分析的sql语句前面,在执行结果中查看key这一列的值,如果为NULL,说明没有使用索引。
五、mysql锁控制(悲观锁/乐观锁):https://blog.csdn.net/qq_23481475/article/details/107102366




2、golang 
https://www.cnblogs.com/pzblog/p/9088308.html
golang默认都是采用值传递,即拷贝传递
有些值天生就是指针,如slice、map、channel、function、pointer,即指针传递

golang中大多数是传值的,有:

golang中分为值类型和引用类型
值类型分别有:int系列、float系列、bool、string、数组和结构体
引用类型有:指针、slice切片、管道channel、接口interface、map、函数等
值类型的特点是:变量直接存储值,内存通常在栈中分配
引用类型的特点是:变量存储的是一个地址,这个地址对应的空间里才是真正存储的值,内存通常在堆中分配

最终我们可以确认的是Go语言中所有的传参都是值传递(传值),都是一个副本,一个拷贝。
因为拷贝的内容有时候是非引用类型(int、string、struct等这些),这样就在函数中就无法修改原内容数据;
有的是引用类型(指针、map、slice、chan等这些),这样就可以修改原内容数据。

是否可以修改原内容数据,和传值、传引用没有必然的关系。在C++中,传引用肯定是可以修改原内容数据的,
在Go语言里,虽然只有传值,但是我们也可以修改原内容数据,因为参数是引用类型。

这里也要记住,引用类型和传引用是两个概念。

再记住,Go里只有传值(值传递)。
3.slice跟数组的区别:
数组长度固定无法更改
https://www.php.cn/be/go/439638.html

4.  GMP调度L...
"""
原文地址:https://www.cnblogs.com/lajiao/p/14839417.html