【发布时间】:2014-09-30 00:00:23
【问题描述】:
我有一个简单的 INNODB mysql 表 sql_statements
id, text, sha1
id - primary key
text - variable length strings.
sha1 - SHA1 hash of the text
文本列包含类似 sql 查询文本的字符串,例如“select * from abc”、“insert into ...”、...
我在 sha1 列上有一个唯一索引,可以快速搜索带有给定文本的 sql_statements。
但是,设计的一个限制是我们不能插入具有相同 sha1 哈希的 2 行。
为了解决这个问题,我正在考虑使索引不唯一。
mysql中唯一索引和非唯一索引在性能方面有什么区别?两者都是作为 B 树实现的,所以我的猜测是性能应该相似。
谢谢。
【问题讨论】:
-
这张表的用途还不清楚。您回答了存储的内容,但没有回答存储它的原因。恐怕是为了一些奇怪的性能“优化”。