单列索引、多列索引及如何选择合适的索引列顺序

本文探讨了单列索引和多列索引在MySQL中的应用,强调了索引列顺序的重要性。创建单列索引时,可以指定列的前缀长度以减小索引大小。多列索引遵循最左前缀原则,选择性高的列应置于索引前列。选择索引列顺序的经验法则是根据列的选择性和查询条件的频率,以提高查询效率。通过分析数据分布和查询模式,可以优化索引设计以提升系统性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、单列索引
最常见的索引类型涉及单个列,在数据结构中存储该列的值的副本,允许快速查找具有相应列值的行。 B树数据结构允许索引在WHERE子句中快速查找特定值,一组值或一系列值,对应于运算符如=,>,≤,BETWEEN,IN等。

mysql> create table people(
    -> last_name varchar(50) not null,
    -> first_name varchar(50) not null,
    -> sex enum('m','f') not null,
    -> key last_name(last_name)			//单列索引
    -> )engine=innodb;
Query OK, 0 rows affected (0.07 sec)			
	
mysql> select * from people;
+-----------+------------+-----+
| last_name | first_name | sex |
+-----------+------------+-----+
| Akroyd    | Christian  | f   |
| Akroyd    | Lumi       | m   |
| Barrymore | Debbie     | m   |
| Barrymore | Kirsten    | m   |
| Cathy     | Kim        | m   |
+-----------+------------+-----+
5 rows in set (0.00 sec)

mysql> explain select * from people where last_name > 'Barrymore';		//使用了索引进行查找
+----+-------------+--------+------------+-------+---------------+-----------+---------+------+------+----------+-----------------------+
| id | select_type | table  | partitions | type  | possible_keys | key       | key_len | ref  | rows | filtered | Extra   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值