一个表有五5个字段id(pk) xh(学号,虽然不是pk但也是全表唯一的) xb(性别) bj(班级)
sql1:select * from xh = '123'和sql2:select * from xh = '123' and xb='男' and bj='11'
问sql1和sql2那个更快些其中xh、xb、bj都分别有indexxh、xb、bj联合还有一个index
sql1:select * from xh = '123'和sql2:select * from xh = '123' and xb='男' and bj='11'
问sql1和sql2那个更快些其中xh、xb、bj都分别有indexxh、xb、bj联合还有一个index
解决方案 »
- 求一段MYSQL搜索修改语句
- 请教一个简单的sql
- 请问直接insert或update也会造成事务死锁吗?
- mysql分区表性能问题
- 一个简单MySql的查询语句,你能查出来吗?
- tomcat5.5.12+mysql连接池配置问题
- 可否用MYSQL连接远程SQL Server2000服务器,用什么方法
- MySQL有没有可视化管理的工具?就像MS SQLServer的Enterprise Manager一样的工具?
- 两个表拼接的问题,工作需要,急求?
- mysql command line client 和navicat不一致
- mysql查询操作
- 高分求深入学习 mysql 的视频,不要基础的!!!
SQL查询的基本原则之一就是使用最有效的过滤条件,这样可以保证读取更少的数据来完成查询。
另外,像xb这样的列就没有必要创建索引了,性别一般情况下只有男,女两个值,很显然会有大量的重复数据列。这样的索引是没有任何用处的,MySQL不会使用它,只会占用更多的空间。
具有大量重复性数据的字段即使频繁出现在Where中也不要创建索引。
B-Tree
R-Tree
Hash索引
FullText索引
原因和1楼一样。