【转自: http://blog.phpbean.com/a.cn/33/ 】
一张表建一个组合索引UNIQUE KEY `user_key` (`login_name`,`password`,`age`)
索引的存储顺序是按照建表时定义的顺序即login_name-》password-》age
下图是索引的存储结构
一 全键匹配
select * from table where login_name=? and password=? and age=? ;
等同
select * from table where password=? and age=? and login_name=? ;
因为mysql会给你优化sql的顺序
二 匹配最左前缀
select * from table where login_name=?;只用到索引的第一列
select * from table where login_name=? and password=? 用到索引的前两个列
select * from table where login_name=? and age=? ;只用到索引的第一列 因为跳过索引中password列了
以下语句不适用该索引
select * from table where password=? ;
select * from table where password=? and age=? ;
select * from table where age=? ;
三 匹配范围
select * from table where login_name like'?%'; 用到索引的第一列
select * from table where login_name=? and password like'?%' and age=? ; 用到索引的前两个列 因为引擎不能优化第一个范围条件的右边列
分享到:
相关推荐
如果对多列进行索引(组合索引),列的顺序非常重要,MySQL仅能对索引最左边的前缀进行有效的查找。例如: 假设存在组合索引(c1,c2),查询语句select * from t1 where c1=1 and c2=2能够使用该索引。查询语句select...
聚簇索引: 值的逻辑顺序和表数据行的顺序数据相同; 聚簇索引默认是主键,如果表中没有定义主键,InnoDB 会选择一个唯一的非空索引代替。如果没有这样的索引,InnoDB 会隐式定义一个主键来作为聚簇索引。 3.索引方法:
组合索引: create index idx_temp_name$pwd on temp(name, pwd); 删除索引: drop index idx_temp_name on temp; Ø 视图 视图就是一个表或多个表的查询结果,它是一张虚拟的表,因为它并不能存储数据。 视图的...
我们只保留了一个组合主键和一个辅助索引来完成所有的查询。这种表结构优化使得MySQL大放 异彩,并提供给我们可预测的性能。一条复杂的查询例如“我关注的人里面哪些关注了奥巴马总统”能分解成一些单用户查询(谁在...
A.M端实体的关键字 B.N端实体的关键字 C.M端实体关键字与N端实体关键字组合 D.重新选取其他属性 6.当局部E-R图合并成全局E-R图时可能出现冲突,不属于合并冲突的是( )。 A.属性冲突 B.语法冲突 C.结构...
mysql 事务与索引 mysql python交互 sqlalchemy orm介绍 sqlalchemy 常用语法 sqlalchemy 外键关联 sqlalchemy 多外键关联 sqlalchemy 多对多关联 作业之学员管理系统开发 第13周 堡垒机框架开发介绍 堡垒机源码...
认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 oracle的体系很庞大,要学习它,首先要了解oracle的框架。oracle的框架主要由物理结构、逻辑结构、内存分配、后台进程...
05 Typescript中的类 Es5中的类和静态方法 继承 (原型链继承、对象冒充继承、原型链+对象冒充组合继承) (20分40秒).rar 06 Typescript中的类 类的定义 继承 类里面的修饰符 (上) (29分4秒).rar 07 ...
6) 修改MYSQL支持库跨静态编译的EXE和DLL传递连接句柄和记录集句柄无效的BUG(改动较大,可能会产生兼容性问题,我们已经仔细测试,也请使用到此库的用户帮助我们多多测试,以便及早发现问题,谢谢) 7) 其它修改 ...
多个字段组合时,只排除组合重复的。 DISTINCT必须使用列名,不能使用计算或者表达式。 所有的聚合函数都可以使用。如果指定列名,则DISTINCT只能用于COUNT(列名),DISTINCT不能用于COUNT(*)。 如:Select ...
实例055 反转数组中元素的顺序 68 3.4 常用集合的使用 69 实例056 用动态数组保存学生姓名 69 实例057 用List集合传递学生信息 70 实例058 用TreeSet生成不重复自动排序 随机数组 71 实例059 Map映射集合实现省市级...
注意:提醒可能出现的问题,避免出现事故。 新术语,提供新的基本词汇的清晰定义。 表示读者可以自己输入的代码。 强调某个程序执行时的输出。 告诉读者将对程序代码进行逐行分析。...
10.5 SELECT子句顺序..... 65 10.6 小结..... 65 第11章 使用子查询...... 66 11.1 子查询..... 66 11.2 利用子查询进行过滤..... 66 11.3 作为计算字段使用子 查询..... 69 11.4 小结..... 71 第12章 联结表........
17.10 调试内存问题 614 第18章 算法 616 引言 616 18.1 消除序列中的重复 619 18.2 在保留序列顺序的前提下消除其中的重复 621 18.3 生成回置采样 625 18.4 生成无回置的抽样 626 18.5 缓存函数的返回值 ...