尬聊数据库索引

首先,数据库是为了解决大量数据存储的问题。良好设计的数据库,会让数据存储和查询兼顾方便与快捷。

当数据库本身较小,或者查询频率较低时,没有索引也无妨。比如一个不常用的几页纸小册子,用的时候随手翻一下费不了什么事。但要是小册子换成了大字典,想找到“ch”从哪一页,靠翻的就比查目录慢了很多。

数据库索引就是一种有序的目录结构,索引查询的优势在于可以利用它的顺序,同时索引相比对应的实际内容在数据大小上要小得多,也就更利于查询。

建立索引有没有什么讲究呢?还真有。索引是为了优化查询速度而创建的,某些场景下索引不但没用,反而成了累赘。

比如索引不是越多越好。索引也是要占用磁盘空间的,数据量越大索引越大。每新增一条数据,索引都要跟着更新(保持有序状态),索引多了负担也重了。

索引有质量差别,好的索引区分度大,利用率高。比如,唯一索引可以定位到单条数据,那么它的区分度是最大的。像性别这样只能区分50%的就不适合作为索引了。查询频率低或者区分度低的索引,就要考虑使用别的方法优化了(比如建立小表来存对应的数据)。

建立合理索引的基础是了解业务使用场景。

2019-01-30 22:12 22
Comments
Write a Comment