MySQL索引性能......我应该在这个简单的表上创建一个索引吗?

时间:2011-11-12 16:38:36

标签: mysql performance indexing

我已经阅读了大约20个关于索引性能的主题,但仍有几个问题......

  1. 您是否建议在仅包含约2000行的表中索引 userid 列,列 id (自动增量), userid < / strong>(唯一,如ssn), first_name last_name phone_num ,当用户登录时,它会在每个页面上显示first_name,last_name,phone_num in,通过使用WHERE userid ='123-45-67890'从表中选择数据?

  2. 与1)相同的问题,但行数随着时间的推移而增加,可能远远超过2000?

1 个答案:

答案 0 :(得分:3)

  

当用户登录时,它会在每个页面上显示first_name,last_name,phone_num,方法是使用WHERE userid ='123-45-67890'从表中选择数据

当然,去吧,而不是扫描所有的行,一些寻求就足够了。您将在每个页面上使用该查询。您是否考虑过将这些数据存储在会话中?

当您认为某个表有很多写入时(例如,您正在记录某些内容),您必须将索引保持在最小值。在用户表中,您很可能会有大量读取和少量写入。

此外,如果从中获益的查询不经常运行并且其性能可以接受,则可以考虑不添加索引。

没有索引:

EXPLAIN SELECT id_person FROM sl_person WHERE username='admin'

使用索引:

EXPLAIN SELECT id_person FROM sl_person WHERE username='admin'