- MariaDB High Performance
- Pierre MAVRO
- 258字
- 2021-08-05 18:03:18
The explain command
The explain
SQL command provides information for a specific request. Most of the time, we get a query from the slow query logs to analyze the request. The explain
command won't return the classical output of the query but will provide some information concerning the related SQL query.
The explain
command can only be applied on a SELECT
query. UPDATE
and DELETE
are supported in Version 10.0.5!
Let's take a query that you can have in your slow query logs. Here is an example with a working version of MediaWiki:
MariaDB [mediawiki]> explain select page_id, page_title, page_namespace, page_is_redirect, old_id, old_text from wiki_page, wiki_revision, wiki_text where rev_id=page_latest and old_id=rev_text_id\g; *************************** 1. row *************************** id: 1 select_type: SIMPLE table: wiki_page type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 2005 Extra: *************************** 2. row *************************** id: 1 select_type: SIMPLE table: wiki_revision type: eq_ref possible_keys: rev_id key: rev_id key_len: 4 ref: mediawiki.wiki_page.page_latest rows: 1 Extra: ... 3 rows in set (0.00 sec)
The explain
feature lists two rows here. If you examine the first one, ALL
means there is a full scan done on the wiki_page
table. Then, in the type
section, you can see how the table is accessed. Here, there is no index type. That's why 2005
rows were scanned and that's why it's slow.
If you now look at the second row, it's better. There is an index (eq_ref
), which means this is the best possible plan to find the row. In addition, the number of scanned rows is 1
, so it's perfect!
- Functional Python Programming
- GitLab Cookbook
- PWA入門與實踐
- Python數據分析入門與實戰
- HTML5 移動Web開發從入門到精通(微課精編版)
- INSTANT Weka How-to
- 高級C/C++編譯技術(典藏版)
- Python完全自學教程
- Visual C#通用范例開發金典
- SQL Server數據庫管理與開發兵書
- Microsoft Dynamics AX 2012 R3 Financial Management
- Mobile Device Exploitation Cookbook
- Mastering C++ Multithreading
- Python Data Science Cookbook
- Spring技術內幕:深入解析Spring架構與設計原理(第2版)