我对数据库还比较陌生,很抱歉,如果这是101条知识,我还没有吸收。我搜索了一下,但没有找到满意的答案。
我正在编写一个程序,它遍历大约20兆文件,并将它们的文件名全部放在一个表中(我有很强的偏好将其保存在一个表中供将来使用)。每个file_name包含一个BIGINT id (以及其他Ascii字符)。每一个BIGINT file_name只有大约20个id。我现在的问题是:可以利用这个名称结构来提高查找性能吗?
到目前为止,我的桌子结构:
CREATE TABLE IF NOT EXISTS files
(file_name VARCHAR(40) CHARACTER SET ascii NOT NULL PRIMARY KEY,"
id BIGINT UNSIGNED,
...)我的查找语句是:
WHERE file_name = '...'例如,将id索引,然后查找file_name和id是否更好?
提前谢谢一堆人!
发布于 2015-07-13 12:22:59
我知道每个ID可以有20个不同的文件名,所以ID不是唯一的。则不能使用主键的ID。如果您知道file_name是唯一的,那么唯一的选择就是使用file_name作为主键。如果您寻找特定的file_name,这将给您提供最大的性能。如果还需要查找具有特定ID的所有文件,则必须在ID字段上创建非唯一索引。
发布于 2015-07-11 20:37:01
通常的表设计是让id作为主键。如果您也希望查询file_name,则该列上的索引可能是正确的选择。
https://stackoverflow.com/questions/31361494
复制相似问题