关于数据库索引-1

先说说为什么写这个文章,去很多厂子面试的时候,他们一看我简历说上面写了用mysql开发过什么(其实我只用mysql存储过一些数据哇),然后他们会问你各自数据库的问题,我就基本上不会,数据库这个东西我4年前学的,4年前我可以告诉你这些,现在是4年后。可能对数据库的理解主要是包括,物理设计,逻辑设计,ER关系图,范式,二段锁,transaction之类的,东西还是挺多。对我来说,当时学数据库的时候,我觉的最主要还算设计方面的,关于ER关系转化,消除依赖关系,可是这些设计的东西厂里的面试官一般不会问,问的最多的还算这个“索引”!!!!

说到索引,很简单的概念,就好像一本书,书的目录就是索引,书里面的内容就好像你的数据。那么索引类型 主要有两大类hash,b-tree。hash一般用于equality selection的问题,b-tree一般用于range selection的问题。

再说说在某厂搜索部实习时内部使用的hash索引,要对大量的商品建立索引并查询,如果用户查找了“手机”,那么你要把带手机属性的商品全部展示出来,所以手机就可以当作一个主键,所以这种索引用到这这个型式   (手机:商品id->商品id->商品id.....) 这是一个倒排索引,也算是次索引的一种实习(去之前一直没理解倒排是什么概念,某天看之前数据结构课ppt,发现尼玛这些老师以前都讲过。),如果还有另外一条倒排表 (iphone: 商品id->商品id->商品id),那么如果用户输入“iphone 手机” 就可以通过hash这两个输入,找出这两个表,做一个并集合,就完成了查找,可能这个后台的查询架构中国很多很多人每天都会用到。倒排拉链可以参考下面的图。


fedora底下有什么好点的画图工具哇。这个画的好丑给个建议吧。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值