Yog*_*R.L 4 mysql indexing collation b-tree-index
我正在编写一个简单的工具来检查重复的文件(即具有相同数据的文件).机制是使用sha-512算法为每个文件生成哈希值,然后将这些哈希值存储在MYSQL数据库中.我在二进制(64)唯一非空列中存储哈希值.每行都有一个唯一的二进制哈希值,用于检查文件是否重复.
- 我的问题是 -
我可以在二进制列上使用索引,我的默认表排序规则是latin1 - 默认排序规则吗?
为了获得高性能,我应该使用哪种索引机制Btree或Hash?我需要每秒更新或添加100行.
我还应该注意哪些其他方面才能获得最佳性能?
egg*_*yal 11
我可以在二进制列上使用索引,我的默认表排序规则是latin1 - 默认排序规则吗?
是的你可以; 排序规则仅与字符数据类型相关,而不是二进制数据类型(它定义了字符的排序方式) - 另外,请注意这latin1
是字符编码,而不是排序规则.
为了获得高性能,我应该使用哪种索引机制Btree或Hash?我需要每秒更新或添加100行.
请注意,哈希索引仅适用于MEMORY
和NDB
存储引擎,因此您甚至可能没有选择.
无论如何,要么通常能够满足你的性能标准 - 尽管对于这个特定的应用程序我看不到使用B-Tree(有序)的好处,而Hash会提供更好的性能.因此,如果您有选择,您也可以使用哈希.
我还应该注意哪些其他方面才能获得最佳性能?
取决于您对"最佳表现"和您的环境的定义.一般来说,请记住Knuth的格言" 过早优化是所有邪恶的根源 ":也就是说,只有在您知道最简单的方法存在问题时才进行优化.