我们都知道,当数据表中的数据日益增长后,查询会变得越来越慢,当初在表设计之初,尚未考虑创建索引的话,那么现在正是必要的时候。可是,如果对于MySQL使用索引的策略不了解,或是脱离了具体业务场景,那么,创建出来的索引,也发挥不了多大的作用。本文,就从我刚刚完成的一个项目入手,介绍如何正确的设计联合索引,以在实战项目中真正的发挥作用。
2024年07月17日
我们都知道,当数据表中的数据日益增长后,查询会变得越来越慢,当初在表设计之初,尚未考虑创建索引的话,那么现在正是必要的时候。可是,如果对于MySQL使用索引的策略不了解,或是脱离了具体业务场景,那么,创建出来的索引,也发挥不了多大的作用。本文,就从我刚刚完成的一个项目入手,介绍如何正确的设计联合索引,以在实战项目中真正的发挥作用。
2024年07月17日
之前在网上看到过很多关于mysql联合索引最左前缀匹配的文章,最近面试时和面试官交流,发现面试官大都理解有误,导致于误人子弟。今天就来整理下。
在mysql建立联合索引时会遵循最左前缀匹配的原则,即最左优先,在检索数据时从联合索引的最左边开始匹配,示例:
对列col1、列col2和列col3建一个联合索引
2024年07月17日
作者:孤独烟 来自:孤独烟
这篇文章作为《面试官:谈谈你对mysql索引的认识》的续篇,我当时在写这篇的时候,考虑到篇幅问题所以略去了联合索引的内容,今天给大家补上。本文预计分为两个部分:
(1)联合索引部分的基础知识
2024年07月17日
命名规则:表名_字段名
1、需要加索引的字段, 要在where条件中
2、数据量少的字段不需要加索引(推荐2000条为界)
3、如果where条件中是OR关系, 加索引不起作用
2024年07月17日
2024年07月17日
联合索引
顾名思义,就是几个字段联合起来,一起做的索引,为了讲述,首先先建立一个表,test_union:
create table test_union ( id int auto_increment comment 'zhujian' primary key, k1 int not null comment 'lianheziduan1', k2 int not null comment 'lianheziduan2', k3 int not null comment 'lianheziduan3', k4 int not null comment 'lianheziduan4', k5 int not null comment 'lianheziduan5', k6 int null comment 'ziduan1', k7 int null comment 'ziduan2' ); create index test_union_k1_k2_k3_k4_k5_index on test_union (k1, k2, k3, k4, k5);
2024年07月17日
之前在网上看到过很多关于mysql联合索引最左前缀匹配的文章,讲的都比较泛,所以今天在这里自己整理一下这方面的内容,做个备忘!
在Mysql建立多列索引(联合索引)有最左前缀的原则,即最左优先。