索引
索引原理
创建索引会在磁盘中创建一颗平衡树,一个表数据假设有一个亿条数据,没有索引最多需要检索一亿次,如果创建了索引,只需要20次左右。故查询速度明显加快
而每次的更新都有可能让这棵树的接口发生很大的调整,故表中增加了索引会导致更新数据变慢,而且耗费cup等资源和内存空间。
例子
主键是聚集索引,如果表中创建了主键 磁盘上的存储结构会由一张表变成树形。假设表t_user的主键是id, name+age联合作为索引
如果 select * from t_user where name = 'jason' and age = 23;
1. 先通过非聚集索的树引查出聚集索引(主键)
2. 通过主键的树查询出数据
如果 select age from t_user where name = 'jason';
只需要查询一次非聚集索引即可
SQL
--create index create index indx_bind_sn on T_Sim_Bind_Info(PRE_BIND_SN,CREATE_TIME); --drop drop index indx_bind_sn --explain explain plan for select * from T_Sim_Bind_Info where PRE_BIND_SN = 'KD7800A73688' and create_time > to_date('2013-8-23','YYYY-MM-DD') and create_time < to_date('2021-8-23','YYYY-MM-DD'); select * from table(dbms_xplan.display);
参考:http://t.csdn.cn/1CxT4