Mysql Force Index 不起作用, 用 IGNORE INDEX 来顶替
2012-11-28 16:37
337 查看
表author_r有100W左右数据, 表中有多个索引:
1. Inx_SNS_Website_Code(SNS_Website_Code)
2. Inx_Pair_Author_Raw_ID(Pair_Author_Raw_ID)
3. Inx_Author_RawID(Author_Raw_ID)
4. Inx_Time_S_Code_RType_RawID(Extracted_Time, SNS_Website_Code, R_Type, Author_Raw_ID, Pair_Author_Raw_ID)
下面SQL中的查询结果有300条:
1. 走索引Inx_Author_RawID,Inx_Pair_Author_Raw_ID是最快的
2. 但默认走Inx_SNS_Website_Code索引, 特别慢.
3. 调试: 设置强制走索引Force Index(Inx_Time_S_Code_RType_RawID), EXPLAIN发现没走索引, 即强制不成功
强制走 Inx_Author_RawID, Inx_Pair_Author_Raw_ID索引也不成功
4. 后来发现还有IGNORE INDEX, 尝试IGNORE INDEX(Inx_SNS_Website_Code), 此时走的索引是Inx_Time_S_Code_RType_RawID, 速度还是很慢, 原因是时间跨度太大
5. 最后IGNORE INDEX(Inx_SNS_Website_Code,Inx_Time_S_Code_RType_RawID), 走索引(Inx_Author_RawID,Inx_Pair_Author_Raw_ID), 速度很快.
疑问: 不知为啥 Force Index 会不成功? 知道的朋友麻烦告知一下.
1. Inx_SNS_Website_Code(SNS_Website_Code)
2. Inx_Pair_Author_Raw_ID(Pair_Author_Raw_ID)
3. Inx_Author_RawID(Author_Raw_ID)
4. Inx_Time_S_Code_RType_RawID(Extracted_Time, SNS_Website_Code, R_Type, Author_Raw_ID, Pair_Author_Raw_ID)
下面SQL中的查询结果有300条:
1. 走索引Inx_Author_RawID,Inx_Pair_Author_Raw_ID是最快的
2. 但默认走Inx_SNS_Website_Code索引, 特别慢.
3. 调试: 设置强制走索引Force Index(Inx_Time_S_Code_RType_RawID), EXPLAIN发现没走索引, 即强制不成功
强制走 Inx_Author_RawID, Inx_Pair_Author_Raw_ID索引也不成功
4. 后来发现还有IGNORE INDEX, 尝试IGNORE INDEX(Inx_SNS_Website_Code), 此时走的索引是Inx_Time_S_Code_RType_RawID, 速度还是很慢, 原因是时间跨度太大
5. 最后IGNORE INDEX(Inx_SNS_Website_Code,Inx_Time_S_Code_RType_RawID), 走索引(Inx_Author_RawID,Inx_Pair_Author_Raw_ID), 速度很快.
疑问: 不知为啥 Force Index 会不成功? 知道的朋友麻烦告知一下.
SELECT ar.* FROM `author_r` ar IGNORE INDEX(Inx_SNS_Website_Code,Inx_Time_S_Code_RType_RawID) WHERE 1=1 and ar.Extracted_Time BETWEEN str_to_date('1970-11-01 00:00:00','%Y-%m-%d %H:%i:%s') and str_to_date('2012-11-28 23:59:59','%Y-%m-%d %H:%i:%s') and ar.SNS_Website_Code='TW' and ar.R_Type in ('F','I','R','LL') and ( Author_Raw_ID in ('tw_tabelogcospe') or Pair_Author_Raw_ID in ('tw_tabelogcospe') ) order by Pair_Name asc limit 300;
相关文章推荐
- mysql force Index 强制索引 忽略索引 IGNORE INDEX
- 【转】mysql force Index 强制索引
- MySQL force Index 强制索引概述
- mysql force Index 强制索引[转]
- Mysql的强制索引(Force Index)都为我们做了哪些优化?
- MySQL force Index 强制索引概述
- MySQL force Index 强制索引概述
- mysql (force,ingore) index
- Mysql_mysql force Index 强制索引
- MySQL force Index 强制索引概述
- mysql sql优化实例1(force index使用)
- mysql 使用force index优化查询
- mysql-2000多万性能与force index强制指定索引
- mysql联合查询强制走索引(force index,GROUP BY)
- mysql高级-force Index straight_join
- FORCE INDEX/IGNORE INDEX
- mysql force Index 查询强制使用索引
- mysql sql force_index 优化案例
- MySQL之 SQL force Index 强制索引
- Git中.gitignore文件不起作用的解决以及Git中的忽略规则介绍