
MySQL
文章平均质量分 51
砖瓦程序猿
总结、记录、分享、交流
展开
-
MySQL索引:优化小细节
MySQL索引优化小细节1.当使用索引列进行查询的时候尽量不要使用表达式,把计算放到业务层而不是数据库层2.尽量使用主键查询,而不是其他索引,因为主键查询不会触发回表两种主键:(1)自然主键:和当前业务系统是有关的(2)代理主键(推荐使用):和当前这个表其他信息,在业务上是没啥关系的,比如设置一个uuid3. 使用前缀索引当我们列的值太长的时候,比如url了,或者城市名字等时候,可惜选择属性值的前n个字符进行建立索引,这里涉及到序偶引得选择性,我们可以进行测试,看看选多少.原创 2021-03-11 21:43:33 · 212 阅读 · 0 评论 -
MySQL索引:组合索引,什么时候使用索引?
组合索引表abc,建立组合索引(a,b,c) 语句 是否使用索引 使用情况 1 where a=1 and b=2 and c=3; 是 a,b,c 2 where a=1 and b=2; 是 a,b 3 where a=1; 是 a 4 where a=1 or b=2; 是(当只有 a,b,c列时,一般实际中不会出现这样的情况) a,b,c 5 where a=1 or ..原创 2021-03-08 11:17:20 · 741 阅读 · 0 评论 -
MySQL索引:聚簇索引和非聚簇索引
https://blog.youkuaiyun.com/lm1060891265/article/details/81482136转载 2021-03-08 11:16:14 · 102 阅读 · 0 评论 -
MySQL索引:索引的分类和索引匹配
面试时候遇到的一些相关问题:Q1:发现一些SQL语句比较慢,怎么去创建索引?Q2:在写SQL语句时,有哪些点会造成索引失效?索引分类:1.主键索引当给表创建了主键时,其他数据会按照主键来组织,这就是主键索引2.唯一索引(unique)给一列设置了值是唯一的,不允许有重复值出现3.普通索引(又叫二级索引或者普通索引)除了主键和唯一键创建的索引4.全文索引类似检索,5.6后InnoDB支持,貌似很少用5.组合索引InnoDB中使用了自适应哈希索引,Memory引擎使用..原创 2021-03-07 21:49:54 · 291 阅读 · 2 评论 -
MySQL索引:什么是MRR?
什么是MRR?全称multi-range read,MySQL5.6后新特性有student表id(主键) name age 1 路飞 18 2 索隆 20 我们对id建立索引,然后再对name建立索引。那么当我们执行select * from student where name=?时,由于索引底层数据结构的B+Tree,对name列建立的索引叫做二级索引或者副主索引,这个索引的数据存储的是id(或者唯一列、或者是6字节的row id),如下图.原创 2021-03-07 16:28:55 · 1459 阅读 · 0 评论 -
MySQL索引:回表、索引覆盖,最左匹配原则、索引下推
一、回表若有student表如下id(主键) name age 1 路飞 18 2 索隆 20 我们对id建立索引,然后再对name建立索引。那么当我们执行select * from student where name=?时,由于索引底层数据结构的B+Tree,对name列建立的索引叫做二级索引或者副主索引,这个索引的数据存储的是id(或者唯一列、或者是6字节的row id),如下图,那么我们执行完SQL时,会从name的B+Tree中拿到id,再.原创 2021-03-07 15:50:39 · 1031 阅读 · 0 评论 -
[ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting
直接上图C:\WINDOWS\system32> mysqld --initialize --console2019-10-03T12:15:18.041609Z 0 [System] [MY-013169] [Server] D:\Tools\mysql\mysql-8.0.17-winx64\bin\mysqld.exe (mysqld 8.0.17) initializin...原创 2019-10-03 20:23:19 · 17586 阅读 · 11 评论