我应该使用什么样的索引?

时间:2017-04-24 13:34:05

标签: mysql sql indexing

我们存储具有以下结构的记录: Ssn,lname,fname 在lname

上订购的数据文件中

如果我们想要一个lname索引,因为很多查询都是基于搜索的 姓氏,需要什么样的索引?

2 个答案:

答案 0 :(得分:1)

根据您的要求,尝试将 B-tree索引添加到该特定列。

答案 1 :(得分:0)

对于人名,我推荐使用复合INDEX(lname, fname)。这将(在某种程度上)有助于这些:

WHERE lname = 'James'
WHERE lname = 'James' AND fname LIKE 'R%'
WHERE lname = 'James' AND fname = 'Rick'

您的群集PRIMARY KEY可能是SSN;该索引也可能是次要(非聚集)索引。

在MySQL中,BTree基本上是唯一的选择。无论如何,BTree至少和Hash一样好。

小心!存储SSN是一个严重的安全问题。如果你丢失了你的机器,或者它被黑了,那么你将会成功。同时,不要指望我给你我的SSN。