使用 MySQL 索引 Varchar

Indexing a Varchar with MySQL

我有一个 table foo 这样的:

id | column1
1  | normalized_string_format1
2  | normalized_string_format1
3  | normalized_string_format2
4  | normalized_string_format3

table 上的查询总是:

SELECT * FROM foo WHERE column1 = 'some_string'

INSERT INTO foo (column1) VALUES ('some_string')

请注意,上面示例中的前两行有 normalized_string_format1,因此第 1 列不是唯一的。我应该在 column1 中创建一些索引以提高性能吗?在这种情况下,我应该选择哪一个索引?

如果 table foo 是重要的,那么在 column1 上添加索引可能会提高性能。

您可以这样创建索引:

CREATE INDEX foo_IX1 ON foo (column1) 

INSERT/UPDATE/DELETE 语句将做更多的工作,以维护索引条目。

但是在 column1 上带有相等谓词的 SELECT 语句将能够使用索引范围扫描操作,这意味着它可以避免检查 table 中的每个翻转行。