日期:2014-05-16  浏览次数:20708 次

关于索引的弱智问题,这是本人在CSDN上第一次发帖,处女座,久闻CSDN人很热心
select * from where uid=N and sid=M
只给uid建单字段索引的效果,
分别给 uid和sid建单字段索引的效果,
给 uid和sid建多字段索引的效果。
这三种有什么不同?

------解决方案--------------------
三种方法的效果如下(如果不是非常大的数据量,千万级,没有必要):

只给uid建单字段索引的效果
select * from where uid=N

分别给 uid和sid建单字段索引的效果,
select * from where uid=N
select * from where sid=M

给 uid和sid建多字段索引的效果
select * from where uid=N and sid=M

------解决方案--------------------
MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html

引用7. 优化
7.1. 优化概述
7.1.1. MySQL设计局限与折衷
7.1.2. 为可移植性设计应用程序
7.1.3. 我们已将MySQL用在何处?
7.1.4. MySQL基准套件
7.1.5. 使用自己的基准
7.2. 优化SELECT语句和其它查询
7.2.1. EXPLAIN语法(获取SELECT相关信息)
7.2.2. 估计查询性能
7.2.3. SELECT查询的速度
7.2.4. MySQL怎样优化WHERE子句
7.2.5. 范围优化
7.2.6. 索引合并优化
7.2.7. MySQL如何优化IS NULL
7.2.8. MySQL如何优化DISTINCT
7.2.9. MySQL如何优化LEFT JOIN和RIGHT JOIN
7.2.10. MySQL如何优化嵌套Join
7.2.11. MySQL如何简化外部联合
7.2.12. MySQL如何优化ORDER BY
7.2.13. MySQL如何优化GROUP BY
7.2.14. MySQL如何优化LIMIT
7.2.15. 如何避免表扫描
7.2.16. INSERT语句的速度
7.2.17. UPDATE语句的速度
7.2.18. DELETE语句的速度
7.2.19. 其它优化技巧

------解决方案--------------------
修正一下二楼的说法:
三种方法的效果如下(如果不是非常大的数据量,千万级,没有必要):

只给uid建单字段索引的效果
select * from where uid=N

分别给 uid和sid建单字段索引的效果,
select * from where uid=N or sid=M

给 uid和sid建多字段索引的效果
select * from where uid=N and sid=M