看SQL语句有没有索引
要查看SQL语句是否使用了索引,可以采用以下几种方法:
1. 使用EXPLAIN命令:在执行SQL语句前,加入EXPLAIN关键字,这样可以将执行计划输出到终端上,然后就可以看到是否使用了索引。如果键值列中包含"Using index"字样的行,则表示查询使用了索引。如果键值列中仅包含"NULL"字样,则表示在查询中没有使用索引。
2. 查看查询日志:在MySQL中,可以使用log_queries_not_using_indexes参数开启查询日志功能,这样执行的SQL语句就会被记录下来,可以通过查看日志文件来判断是否使用了索引。
3. 使用SHOW INDEXES命令:在MySQL中可以使用SHOW INDEXES命令查看表的索引情况。如果在Extra列中显示Using index,则表示该索引被使用了。如果显示Using where,则表示需要在结果集中进行过滤,需要使用where子句来完成查询。
4. 使用FORCE INDEX:在查询时可以使用FORCE INDEX关键字,指定使用哪个索引来执行查询。
5. 使用profiling分析:mysql的profiler是一个非常方便的查询诊断分析工具,通过该工具可以获取一条查询在整个执行过程中多种资源的消耗情况,例如内存消耗、I/O消耗和CPU消耗。