数据库索引

以前一直对数据库索引的概念很模糊。即使是偶尔使用数据库,但是用SQLite比较多,数据量也不大,很少接触这方面(当然SQLite也有索引)。至于当时为什么没去学这东西,是因为我一直奉行不要过早优化,因为程序还没表现出性能不佳,也够用了。index这概念不要去死抠,没什么意义,只是一个抽象上的概念。

数据库的索引实现本质上是要么B树,要么B+树,但是索引对数据库使用者来说基本是透明的,只需要从语句(SQL)上建立index即可。使用索引在数据量很大的情况下可以降低开销和磁盘IO,(不然就是扫描全表)当然,最能让人直观感受的就是速度变快了,索引是建立在column上的,建立索引的column的在select的时候速度会快很多。

当然对于Oracle,它的索引就有很多种类,每种索引都有对应适合的场景,相关优缺点。

references

http://www.cnblogs.com/xwdreamer/archive/2012/05/03/2480449.html

http://www.cnblogs.com/KissKnife/archive/2009/03/30/1425534.html

http://docs.oracle.com/database/121/CNCPT/indexiot.htm#CNCPT721

http://blog.csdn.net/chu_qun/article/details/3719532

原文地址:https://www.cnblogs.com/foohack/p/5266144.html