标签:商品 数据 语句 add 面试 内容 java 一个 意义
场景一,数据表规模不大,就几千行,即使不建索引,查询语句的返回时间也不长,这时建索引的意义就不大。当然,若就几千行,索引所占的空间也不多,所以这种情况下,顶多属于“性价比”不高。
场景二,某个商品表里有几百万条商品信息,同时每天会在一个时间点,往其中更新大概十万条左右的商品信息,现在用where语句查询特定商品时(比如where name = ‘XXX’)速度很慢。为了提升查询效率可以建索引,但当每天更新数据时,又会重建索引,这是要耗费时间的。
这时就需要综合考虑,甚至可以在更新前删除索引,更新后再重建。
场景三,从图2.1中可以看到,因为在数据表里ID值都不相同,所以索引能发挥出比较大的作用。相反,如果某个字段重复率很高,如性别字段,或者某个字段大多数值是空(null),那么不建议对该字段建索引。
请大家记住,一定是有业务需求了才会建索引。比如在一个商品表里,我们经常要根据name做查询,如果没有索引,查询速度会很慢,这时就需要建索引。但在项目开发中,如果不经常根据商品编号查询,那么就没必要对编号建索引。
最后强调一点,建索引是要付出代价的,没事别乱建,同时在一个表上也不能建太多的索引。
更多内容请阅读 java web轻量级开发面试教程
https://baike.baidu.com/item/Java%20Web%E8%BD%BB%E9%87%8F%E7%BA%A7%E5%BC%80%E5%8F%91%E9%9D%A2%E8%AF%95%E6%95%99%E7%A8%8B/22038502?fr=aladdin
java web轻量级开发面试教程读书笔记:建索引时我们需要权衡的因素
标签:商品 数据 语句 add 面试 内容 java 一个 意义
原文地址:http://www.cnblogs.com/JavaArchitect/p/7434410.html