绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
GaussDB100 索引
2020-02-27 10:33:06
  • 索引和表是独立的对象

   索引和表是独立的对象,它们分别拥有自己的存储空间,并不是放在一起的,所以它们可以存放在不同的表空间(每个表空间是一组数据文件的集合)中。一个表上如果有多个索引,那每个索引也是独立的对象,拥有自己的存储空间。两个索引之间是没有关系,好比字典的拼音索引和部首索引,在编排和使用时都是相互独立的 。

  • 索引和表在磁盘上的存放方式

   表和索引的数据都存放在磁盘的数据块中,每个数据块一般固定为8K。数据块是数据读写的小单位,即使只需要读取一条数据,也会把整块的数据读到内存中,写数据也一样。表中的数据是无序的存放在数据库块中的,两个数据块完全没有关系,同一个数据块中的数据也没有关系。数据在表中的顺序也不一定是录入的顺序,后录入的数据可能在前面。如果想从表中查询某条数据,在没有索引的情况下就只能扫描表的所有数据块了,即全表扫描。这就好比一本书没有目录,要找某个内容只能把整本书翻一遍。与表的无序存放不同,索引是有序存放的。在存放索引的数据块上,数据都是有序的,并且数据块之间使用指针进行关联。

  •  索引和表之间是如何关联的

索引中保存:索引的键值(索引列的值);数据在表中的地址(rowid)。查字典时,根据拼音索引可以找到某个字的页码然后直接到该页查看详细内容。Oracle索引与查字典也很类似,如果要找userid=10的数据,那么就到userid索引中先找到目标数据的地址(rowid),然后根据数据地址到表中查看目标数据的详情。那么,如果要找username=’abc’的数据呢,userid的索引就不好用了,需要使用username的索引了。这就好比你只知道汉字的写法就不能使用拼音检索,而只能用部首查字法了

分享好友

分享这个小栈给你的朋友们,一起进步吧。

GaussDB_数据库
创建时间:2020-01-06 16:21:44
华为GaussDB数据库小栈
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • GaussDB_数据库
    专家
戳我,来吐槽~