2011-10-22 101 views
0

我在MySQL慢查询日志中有以下内容。选择锁定表格(或我不确定的行)并搜索几乎整个表格。我正在使用MySQL 4.1.20 MyISAM。如何修改查询或表来修复效率低下的查询?

# Query_time: 120 Lock_time: 108 Rows_sent: 1 Rows_examined: 641468 
SELECT * FROM USERS WHERE EMAIL='[email protected]' AND PASSWORD='8b45114747sdfas8dbcd02206a4sad0' LIMIT 1; 

如何解决这个在生产中使用的表中?

我的表结构如下:

enter image description here 与以下指标设置:

enter image description here

回答

1

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

+2

实际上,只有电子邮件本身会并且保持索引分页更小。即使列表中有两个电子邮件实例(不推荐),它也会快速找到2个条目并完成。 – DRapp

+0

@DRapp当我在生产中使用的表中的字段上创建索引时会发生什么? –

+0

@ dev.e.loper,没有什么真正的,除非它可能会导致索引正在构建时其他查询有一点滞后时间。除了优化可能也能够利用新索引的其他查询之外,它不应该影响其他任何内容。 – DRapp