【问题标题】:how do indices in mysql tables (MyISAM) work?mysql 表 (MyISAM) 中的索引如何工作?
【发布时间】:2010-03-31 08:12:56
【问题描述】:

我有几个基本的疑问:

1. Is primary key column automatically indexed?

2. What should be criteria to select index column?

3. When should I club multiple columns?

4. Does MyISAM or InnoDB has any affect on which columns should be indexed? Probably not.

5. Are they really required, specially in case if primary key column is automatically indexed?

谢谢。

【问题讨论】:

    标签: mysql indexing primary-key


    【解决方案1】:
    1. 是的。键是索引的同义词。
    2. 数据库设计和使用的查询。没有唯一的答案。
    3. 在查询中使用了这些多列时。没有唯一的答案。
    4. 是的,引擎不会影响索引。
    5. 通常是这样。任何实时应用程序都不仅仅基于主键来获取它的数据。没有唯一的答案。

    索引是一项相当复杂的工作。 一是要立足实际需要。如果您的某些查询运行缓慢,那么是时候添加一些索引了。如果您的查询运行速度很快,则不需要索引。 接下来,在其前面使用单词 EXPLAIN 运行您的查询,例如EXPLAIN SELECT * FROM table 看看它说了什么。通常它有助于确定放置 idnex 的位置。

    http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html - 更多解释在这里

    【讨论】:

    • @Shrapnel:这是否意味着我应该索引所有那些在选择查询中经常使用的列?
    • @understack:创建索引的一个不错的经验法则是在 WHERE 或 JOIN 中使用的任何字段上添加一个。不能处理所有情况,但这是一个足够简单的规则来处理大片领土。
    猜你喜欢
    • 2012-04-24
    • 2011-04-03
    • 2022-01-02
    • 2012-04-08
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 2011-06-04
    相关资源
    最近更新 更多