首页 > 数据库 > Oracle > SQL学习笔记(ORACLE内部存储)
表索引及其相关知识及其在内部相关的物理存储. 执行方式
[@more@]1. 1. 数据库中最小的物理存储单位是块(block, 9i默认是8k)
每个块只能属于一个表;一行数据插入时会占用块中的一些存储,当块不能再容纳新数据时,则将启用新的块存储数据
2. 2. 扫描记录。是将块全部载入内存后开始的。 如果内存不够。将扫描完后继续载入新块。
3. 3. 建立的索引。也是按从小到大顺序排列的。
4. 4. 数据库表, 删除记录后。原来存放记录的块并不回收。但标记了未使用。实际操作时, 仍然会对那些块进行扫描。 比如 原记录有100W条记录。删除50W条记录后, 仍然会和100W条记录的效果差不多。 进行测试的时候尤其要注意。可以使用(TRUNCATE)进行删除。 如何在ORALCE 中批量删除数据 见:http://server.jz173.com/20041022/20041022162455.html
再进行数据插入的时候,将可以使用原先存在的块。
5.5. 对于索引的更新维护,如增加一条记录将对索引也进行更新维护。由于索引是排序的。将把原块破开,两边各增加1/2块。
6. 6.创建索引的标准是那一列是否经常在where条件中出现,否则不应该建立,因为,每次表记录的增加、删除以及修改那个字段值时,还要维护索引,增加了开销;此处讲的索引叫B_tree索引,在内部存储中类似树状结构,有枝和叶,枝是oracle内部存储的一些连接数据,叶才存储实际的值
表中每条记录只要那个列是非NULL值,在索引中都有一个条目(entry)来存储(如上图),类似于表在块中一条条记录存储;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/118026/viewspace-799499/ ,如需转载,请注明出处,否则将追究法律责任。