mysql 5.0 是否索引空值?

发布于 2024-08-07 02:43:32 字数 309 浏览 3 评论 0原文

我意识到之前在堆栈溢出上已经问过确切的问题,只有一个模糊结论性的答案:link< /a>

又来了。

表 A:有一个可为空的整数列以及一个索引。 查询:

SELECT * 
FROM table 
WHERE column IS NULL 
LIMIT 10;

会使用索引,还是mysql会进行全表扫描直到找到10个条目?

I realize that the exact question has been asked before on stack overflow with only a vaguely conclusive answer: link

So here it is again.

Table A: Has an integer column which is nullable, along with an index.
Query:

SELECT * 
FROM table 
WHERE column IS NULL 
LIMIT 10;

Will an index be used, or will mysql do a full table scan until it has found 10 entries?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

秋千易 2024-08-14 02:43:32

我认为这应该有帮助:

http://dev.mysql .com/doc/refman/5.0/en/mysql-indexes.html

如果 col_name 是,则使用 col_name IS NULL 的搜索将使用索引
已编入索引。

i think this should be helpful:

http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

A search using col_name IS NULL employs indexes if col_name is
indexed.

毁我热情 2024-08-14 02:43:32

确定您的具体情况的唯一方法是在您的查询上运行“EXPLAIN SELECT”。

这实际上取决于表中 NULL 的数量与总行数的比较;表统计信息是否已更新等...

The only way to know that for sure in your specific case is to run "EXPLAIN SELECT" on your query.

It really depends on the number of NULLs in your table compared with total number of rows; whether table statistics have been updated, etc...

感情洁癖 2024-08-14 02:43:32

您必须分析查询。一般来说,它取决于NULL与值的相对百分比。如果该整数列中的大多数条目为 NULL,则它可能会跳过它。

另一方面,如果只有 10%(例如)NULL,它将(或应该)使用索引。

You'd have to analyze the query. In general, it depends on the relative percentage of NULLs to values. If a majority of the entries in that integer column is NULL, that it will likely skip it.

On the other hand, if only 10% (for example) are NULL, it will (or should) use the index.

柳若烟 2024-08-14 02:43:32

有一种简单的方法可以了解它。

你可以执行这个命令show index from tablename,它会返回一些分析结果,其中一个被称为NULL。

如果 NULL 等于 YES,则您的索引包含 NULL

http://dev. mysql.com/doc/refman/5.1/en/show-index.html

There is one simple way to know it.

You can execute this command show index from tablename and it will return some analysis results which one is called NULL.

if NULL equals YES, your index contains NULL

http://dev.mysql.com/doc/refman/5.1/en/show-index.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文