索引优化 1.1SQL性能下降的原因 查询语句写的很不好; 索引失效 单值索引 select * from user where name=''; create index idx_user_name on user(name); 复合索引 select * from user where name ...
分类:
其他好文 时间:
2021-04-20 14:31:28
阅读次数:
0
1、show index form table; #Table: 表名 #Non_unique :是否为unique index,0-是,1-否。 #Key_name:索引名称 #Seq_in_index:索引中的顺序号,单列索引-都是1;复合索引-根据索引列的顺序从1开始递增。 #Column_n ...
分类:
数据库 时间:
2020-11-20 12:23:36
阅读次数:
33
1、避免出现select * from table语句,要明确查出的字段 2、在SQL语句中,如果一个where条件过滤的数据库记录越多,定位越准确,则该where条件越应该前移 3、查询时尽可能使用索引覆盖,即对select的字段建立复合索引,这时查询时只进行索引扫描,不读取数据块 4、应绝对避免 ...
分类:
数据库 时间:
2020-11-06 01:14:14
阅读次数:
22
联合索引和单个索引的区别: 如果我们创建了(area, age,salary)的复合索引,那么其实相当于创建了: (area,age,salary),(area,age)、(area)三个索引,这被称为最佳左前缀 特性。因此我们在创建复合索引时应该将最常用作限制条件的列放在最左边,依次递减。 例: ...
分类:
数据库 时间:
2020-07-10 15:37:37
阅读次数:
60
转 一、索引优化 索引的数据结构是 B+Tree,而 B+Tree 的查询性能是比较高的,所以建立索引能提升 SQL 的查询性能。 1、建立普通索引 对经常出现在 where 关键字后面的表字段建立对应的索引。 2、建立复合索引 如果 where 关键字后面常出现的有几个字段,可以建立对应的 复合索 ...
分类:
数据库 时间:
2020-07-06 16:17:03
阅读次数:
87
比较简单的是单列索引(b+tree)。遇到多条件查询时,不可避免会使用到多列索引。联合索引又叫复合索引。 b+tree结构如下:每一个磁盘块在mysql中是一个页,页大小是固定的,mysql innodb的默认的页大小是16k,每个索引会分配在页上的数量是由字段的大小决定。当字段值的长度越长,每一页 ...
分类:
数据库 时间:
2020-06-03 21:55:41
阅读次数:
92
复合索引 ALTER TABLE crm_customer ADD INDEX phone_org (`telephone`, `orgid`); 参考: 1.添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( ` ...
分类:
数据库 时间:
2020-05-12 16:56:17
阅读次数:
80
原文作者: xingguang 原文链接: "https://www.tiance.club/post/579789855.html" MongoDB 中索引的类型大致包含单键索引、复合索引、多键值索引、地理索引、全文索引、 散列索引等,下面简单介绍各类索引的用法。 1、单字段索引 这个是最简单最常 ...
分类:
数据库 时间:
2020-05-05 12:43:56
阅读次数:
219
索引失效的案例: 1、全值匹配我最爱 建立几个复合索引字段,最好就用上几个字段。且按照顺序使用 2、最佳左前缀法则 如果索引了多列,要遵守最左前缀法则,指的是查询从索引的最左前列开始,不跳过索引中间的列。(带头大哥不能死,中间兄弟不能丢) 3、不再索引列上做任何操作(计算、函数、(自动or手动)类型 ...
分类:
数据库 时间:
2020-04-12 23:09:10
阅读次数:
157
1.没有遵循最佳左前缀原则 2.对索引进行了数值运算,类型转换等操作 3.尽量不要使用or,否则or左侧索引失效 4.like查询时,不要以%开头,否则索引失效 5.复合索引不能使用不等于(!= <>)或is null (is not null),否则自身以及右侧所有全部失效。 复合索引中如果有>, ...
分类:
数据库 时间:
2020-04-08 13:40:19
阅读次数:
130