|
|
1
14
我不知道有什么漂亮的图形工具,但是你所寻找的所有信息都可以从
考虑此数据库: sqlite> create table users (name, email); sqlite> create index user_names on users (name);
谓词为的查询
sqlite> explain select * from users where email='foo'; 0|Trace|0|0|0||00| 1|String8|0|1|0|foo|00| 2|Goto|0|13|0||00| 3|OpenRead|0|2|0|2|00| 4|Rewind|0|11|0||00| 5|Column|0|1|2||00| 6|Ne|1|10|2|collseq(BINARY)|6a| 7|Column|0|0|4||00| 8|Column|0|1|5||00| 9|ResultRow|4|2|0||00| 10|Next|0|5|0||01| 11|Close|0|0|0||00| 12|Halt|0|0|0||00| 13|Transaction|0|0|0||00| 14|VerifyCookie|0|5|0||00| 15|TableLock|0|2|0|users|00| 16|Goto|0|3|0||00|
而基于名称的查询将使用
sqlite> explain select * from users where name='foo'; 0|Trace|0|0|0||00| 1|String8|0|1|0|foo|00| 2|Goto|0|18|0||00| 3|OpenRead|0|2|0|2|00| 4|OpenRead|1|3|0|keyinfo(1,BINARY)|00| 5|IsNull|1|15|0||00| 6|Affinity|1|1|0|bb|00| 7|SeekGe|1|15|1|1|00| 8|IdxGE|1|15|1|1|01| 9|IdxRowid|1|2|0||00| 10|Seek|0|2|0||00| 11|Column|1|0|3||00| 12|Column|0|1|4||00| 13|ResultRow|3|2|0||00| 14|Next|1|8|0||00| 15|Close|0|0|0||00| 16|Close|1|0|0||00| 17|Halt|0|0|0||00| 18|Transaction|0|0|0||00| 19|VerifyCookie|0|5|0||00| 20|TableLock|0|2|0|users|00| 21|Goto|0|3|0||00|
使用
http://www.sqlite.org/vdbe.html 但这并不像看上去那么难,并为您提供了关于您的查询的完整故事。 |
|
|
2
19
正如奥蒂斯所说:
如果像我一样,你只是使用它来确保你达到了索引(索引),那么这个技巧是否具有更可读的输出? |
|
|
3
8
|
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |