27、所以为了加快查询速度,得给数据表也设置目录,在数据库领域中,这就是索引 。一般情况下,数据表都会有多个字段,那根据不同的字段也就可以设立不同的索引 。索引的分类主键索引聚集索引非聚集索引主键我们都知道,是唯一标识一条数据记录的字段(也存在多个字段一起来唯一标识数据记录的联合主键),那与之对应的就是主键索引了 。
28、聚集索引是指索引的逻辑顺序与表记录的物理存储顺序一致的索引,一般情况下主键索引就符合这个定义,所以一般来说主键索引也是聚集索引 。但是,这不是绝对的,在不同的数据库中,或者在同一个数据库下的不同存储引擎中还是有不同 。聚集索引的叶子节点直接存储了数据,也是数据节点,而非聚集索引的叶子节点没有存储实际的数据,需要二次查询 。
29、索引的实现原理索引的实现主要有三种:B+树哈希表位图其中,B+树用的最多,其特点是树的节点众多,相较于二叉树,这是一棵多叉树,是一个扁平的胖树,减少树的深度有利于减少磁盘I/O次数,适宜数据库的存储特点 。哈希表实现的索引也叫散列索引,通过哈希函数来实现数据的定位 。哈希算法的特点是速度快,常数阶的时间复杂度,但缺点是只适合准确匹配,不适合模糊匹配和范围搜索 。
30、位图索引相对就少见了 。想象这么一个场景,如果某个字段的取值只有有限的少数几种可能,比如性别、省份、血型等等,针对这样的字段如果用B+树作为索引的话会出现什么情况?会出现大量索引值相同的叶子节点,这实际上是一种存储浪费 。位图索引正是基于这一点进行优化,针对字段取值只有少量有限项,数据表中该列字段出现大量重复时,就是位图索引一展身手的时机 。
31、所谓位图,就是Bitmap,其基本思想是对该字段每一个取值建立一个二进制位图来标记数据表的每一条记录的该列字段是否是对应取值 。索引虽好,但也不可滥用,一方面索引最终是要存储到磁盘上的,无疑会增加存储开销 。另外更重要的是,数据表的增删操作一般会伴随对索引的更新,因此对数据库的写入速度也是会有一定影响 。
32、你的网站现在访问量越来越大了,同时在线人数大大增长 。然而,大量用户的请求带来了后端程序对数据库大量的访问 。渐渐的,数据库的瓶颈开始出现,无法再支持日益增长的用户量 。
33、老板再一次给你下达了性能提升的任务 。缓存技术&&布隆过滤器从物理CPU对内存数据的缓存到浏览器对网页内容的缓存,缓存技术遍布于计算机世界的每一个角落 。面对当前出现的数据库瓶颈,同样可以用缓存技术来解决 。
34、每次访问数据库都需要数据库进行查表(当然,数据库自身也有优化措施),反映到底层就是进行一次或多次的磁盘I/O,但凡涉及I/O的就会慢下来 。如果是一些频繁用到但又不会经常变化的数据,何不将其缓存在内存中,不必每一次都要找数据库要,从而减轻对数据库对压力呢?有需求就有市场,有市场就会有产品,以memcached和Redis为代表的内存对象缓存系统应运而生 。缓存系统有三个著名的问题:缓存穿透:缓存设立的目的是为了一定层面上截获到数据库存储层的请求 。
35、穿透的意思就在于这个截获没有成功,请求最终还是去到了数据库,缓存没有产生应有的价值 。缓存击穿:如果把缓存理解成一面挡在数据库面前的墙壁,为数据库抵御查询请求,所谓击穿,就是在这面墙壁上打出了一个洞 。一般发生在某个热点数据缓存到期,而此时针对该数据的大量查询请求来临,大家一股脑的怼到了数据库 。
推荐阅读
- 云南2023中考改革最新方案分数线 2023中考改革最新方案分数线
- 云这个梗是什么意思
- 昆明当地出发的旅游团
- 云内490发动机号在哪个位置
- 云南大理海拔高度是多少米
- 云南碧螺春好喝吗 碧螺春好喝吗
- 农村土暖气安装教程 家用土暖气安装方法
- 云想衣裳花想容表达了什么
- 云计算工资一般多少钱 云计算行业的薪资水平如何
- 燕云台萧燕燕最后和谁在一起了 萧燕燕和韩德让的结局如何
