我们存储具有以下结构的记录: Ssn,lname,fname 在lname
上订购的数据文件中如果我们想要一个lname索引,因为很多查询都是基于搜索的 姓氏,需要什么样的索引?
答案 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。