【问题标题】:How to modify query or table to fix inefficient query?如何修改查询或表以修复低效查询?
【发布时间】:2011-12-13 04:38:52
【问题描述】:

我在 MySQL 慢查询日志中有以下内容。选择锁定表(或我不确定的行)并寻找几乎整个表。我正在使用 MySQL 4.1.20 MyISAM。

# Query_time: 120  Lock_time: 108  Rows_sent: 1  Rows_examined: 641468
SELECT * FROM USERS WHERE EMAIL='user@blahblha.com' AND PASSWORD='8b45114747sdfas8dbcd02206a4sad0' LIMIT 1;

如何在生产中使用的表中解决此问题?

我的表结构如下:

并设置以下索引:

【问题讨论】:

    标签: mysql sql indexing query-optimization clustered-index


    【解决方案1】:

    尝试为电子邮件和密码添加索引

    【讨论】:

    • 实际上,只需要电子邮件本身并保持索引分页更小。即使列表中有两个电子邮件实例(不推荐),它也会快速找到 2 个条目并完成。
    • @DRapp 当我在表中的字段上创建索引时会发生什么?
    • @dev.e.loper,真的没什么,只是在构建索引时它可能会导致其他查询有一点延迟。除了优化其他可能也能够利用新索引的查询之外,它不应该影响其他任何事情。
    猜你喜欢
    • 2018-07-29
    • 1970-01-01
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多