和索引有关的几个问题?
假如有这样一个表,这样几个字段。
id 姓名 性别 籍贯 身份证
主键递增列 n种可能值 男/女 省份(34种可能) 绝对不相同的数字
搜索时选择搜索的可能性大小:身份证> 姓名> 籍贯> 性别,也可以同时选择多个条件搜索。
在数据量很多的情况,建立聚集索引和非聚集索引。
1.这里面哪个字段建立聚集索引最好?
2.是不是其他的全部字段都建立非聚集索引都可以,随意建立好象效率更低吧?
3.建立搜索的时候象填充索引、唯一值、填充因子这些要考虑吗?
4.建立了索引后SQL搜索语句有变化吗,还是和没有建立索引的是一样的?
小弟很菜,请各位指教
[解决办法]
1.这里面哪个字段建立聚集索引最好?
当然是 身份证 ,最好是聚集唯一索引
2.是不是其他的全部字段都建立非聚集索引都可以,随意建立好象效率更低吧?
这个可能需要研究查询最多的组合方式,建议在不知道的情况下建立以下索引:
(姓名,籍贯)
(籍贯,性别)
(姓名,性别)
3.建立搜索的时候象填充索引、唯一值、填充因子这些要考虑吗?
填充因子主要考虑你的应用类型,就是是否需要插入记录、插入记录和查询的比例,一般来说,如果经常需要插入记录,填充因子应该设置在75-85%
填充索引、唯一值不知道指的是什么
4.建立了索引后SQL搜索语句有变化吗,还是和没有建立索引的是一样的?
大部分应该不用改变,除非你原来的语句没有注意优化
重点修改对性能影响很大的常用语句。