MySQL中的索引(唯一,写语句)

时间:2011-07-17 14:25:31

标签: mysql

我有2个问题

  1. 如果我的表包含这样的唯一列:
  2.   

    DROP TABLE IF EXISTS TestTable;
      CREATE TABLE TestTable(   ID INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
      GUID VARCHAR(32)UNIQUE NULL);

    我是否需要为此GUID列创建索引 注意:我在GUID列中使用连接表的Where语句

    我的第二个问题如果更新的列没有索引,update语句会影响索引表吗?

2 个答案:

答案 0 :(得分:3)

不,UNIQUE是一种索引,因此您不需要在同一列上使用另一个索引。

如果未对已更改的列编制索引,则不会更新索引。

  

未更改的索引不会更新。   source

答案 1 :(得分:1)

这取决于您使用的数据库。不同的数据库有不同的索引方式。

如果您使用InnoDB,那么主键和唯一键已经是索引,因此您不需要。如果您手动为GUID列创建另一个索引,那么您将在该列上有一个额外的冗余索引,这会浪费空间。