我目前正在为一个项目设计一个数据库,该数据库将有8个表,大约3-4,000行。许多表都有许多用于搜索结果的非唯一字段,但并非所有字段都在任何时候使用。
所以,我的问题是,我应该如何在表上设置索引?我应该为每个可搜索字段创建1个索引,还是应该创建一个包含所有可搜索字段的索引?只是有时候我将使用所有字段进行搜索,有时候,我只会使用1或2个字段。
其他
目前,我的所有表都是使用InnoDB存储的,但可以随时更改
答案 0 :(得分:2)
没有一般食谱或银弹;只有经验法则:创建有用的索引。
哪些候选索引完全有用取决于您的数据以及您在其上运行的查询类型。有些列有一列,有些列有多列(顺序也很重要,顺便说一下),它只取决于你做了什么......
答案 1 :(得分:2)
3-4000行并不是真正重要的数据库大小。作为一般规则,您应该查看最经常搜索的字段并将其编入索引。索引每个字段都是过度的。添加索引通常是您查看或稍后重新访问的,当您获得有关系统在日常使用中如何响应的反馈时,或者响应数据库大小的增长对性能的影响。
应谨慎选择多键索引。
答案 2 :(得分:1)
没有简短的回答,但可以在这里找到长答案:http://use-the-index-luke.com/ - 关于SQL索引的指南(我是作者)