本文首发于 Nebula Graph Community 公众号 index not found?找不到索引?为什么我要创建 Nebula Graph 索引?什么时候要用到 Nebula Graph 原生索引?针对社区常见问题,本文旨在一文带大家搞清索引使用问题. Nebula Graph 的索引其实和传统的关系型数据库中的索引很像,但是又有一些容易让人疑惑的区别.刚开始了解 Nebula 的同学会疑惑: 不清楚 Nebula Graph 图数据库中的索引到的是什么概念: 什么时候应该使用 Ne…
导读 索引是数据库系统中不可或缺的一个功能,数据库索引好比是书的目录,能加快数据库的查询速度,其实质是数据库管理系统中一个排序的数据结构.不同的数据库系统有不同的排序结构,目前常见的索引实现类型如 B-Tree index.B+-Tree index.B*-Tree index.Hash index.Bitmap index.Inverted index 等等,各种索引类型都有各自的排序算法. 虽然索引可以带来更高的查询性能,但是也存在一些缺点,例如: 创建索引和维护索引要耗费额外的时间,往往是…
本文为微众银行大数据平台:周可在 nMeetup 深圳场的演讲这里文字稿,演讲视频参见:B站 自我介绍下,我是微众银行大数据平台的工程师:周可,今天给大家分享一下 Nebula Graph 在微众银行 WeDataSphere 的实践情况. 先来说下图数据库应用背景. WeDataSphere 图数据库架构是基于 JanusGraph 搭建,正如邸帅在演讲<NebulaGraph - WeDataSphere 开源介绍>中提及的那样,主要用于解决微众银行数据治理中的数据血缘问题.在使用 Jan…
本文首发于 Nebula Graph 公众号 NebulaGraphCommunity,Follow 看大厂图数据库技术实践. 前言 在先前的 Query Engine 源码解析中,我们介绍了 2.0 中 Query Engine 和 1.0 的主要变化和大体的结构: 大家可以大概了解到用户通过客户端发送一条查询语句,Query Engine 是如何解析语句.把语句构建为抽象语法树,在抽象语法树进行校验.生成执行计划的过程.本文会通过 2.0 中新增的子图算法模块继续讲解 Query Engin…
本文转自:https://www.cnblogs.com/aspwebchh/p/6652855.html 前段时间,公司一个新上线的网站出现页面响应速度缓慢的问题, 一位负责这个项目的但并不是搞技术的妹子找到我,让我想办法提升网站的访问速度 ,因为已经有很多用户来投诉了.我第一反应觉的是数据库上的问题,假装思索了一下,摆着一副深沉炫酷的模样说:“是不是数据库查询上出问题了, 给表加上索引吧”,然后妹子来了一句:“现在我们网站访问量太大,加索引有可能导致写入数据时性能下降,影响用户使用的”.当时…
为什么要给表加上主键? 为什么加索引后会使查询变快? 为什么加索引后会使写入.修改.删除变慢? 什么情况下要同时在两个字段上建索引? 想理解索引原理必须清楚一种数据结构(平衡树非二叉)也就是b tree 或者 b+ tree.有的是有哈希桶做索引的数据结构,然而主流的RDBMS都是把平衡树当做数据表默认的索引数据结构的. 我们平时建表的时候都会为表加上主键, 在某些关系数据库中, 如果建表时不指定主键,数据库会拒绝建表的语句执行. 事实上, 一个加了主键的表,并不能被称之为「表」.一个没加主键的…
数据库原理之-索引 背景介绍: 用数据库的时候经常有几个疑问: 1:为啥通过加索引就能提升数据的查询料率? 2:为啥加多了索引会导致增删改的效率变低? 3:为啥有的人能用好有的人用不好? 这些问题我们可能不一定能说出答案.知道这些问题的答案有什么好处呢?如果开发的应用使用的数据库表中只有1万条数据,那么了解与不了解真的没有差别, 然而, 如果开发的应用有几百上千万甚至亿级别的数据,那么不深入了解索引的原理, 写出来程序就根本跑不动,就好比如果给货车装个轿车的引擎,这货车还能拉的动货吗? 这其中很…
什么是索引 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-tree的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里面的记录数量越多,这个操作的代价就越高.如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置.如果表有100万条记录,通过索引查找记录至少要比顺序扫描记录快1000倍. 索引原理如下图: 上图展示了一种可能的索引方式.左边是数据表,一共有两列七条记录,最左…
本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等.为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论. 文章主要内容分为四个部分: 第一部分主要从数据结构以及计算机主存.磁盘存取的层面讨论MySQL数据库索引. 第二部分主要讨论MySQL中不同引…
导读 身处在现在这个大数据时代,我们处理的数据量需以 TB.PB, 甚至 EB 来计算,怎么处理庞大的数据集是从事数据库领域人员的共同问题.解决这个问题的核心在于,数据库中存储的数据是否都是有效的.有用的数据,因此如何提高数据中有效数据的利用率.将无效的过期数据清洗掉,便成了数据库领域的一个热点话题.在本文中我们将着重讲述如何在数据库中处理过期数据这一问题. 在数据库中清洗过期数据的方式多种多样,比如存储过程.事件等等.在这里笔者举个例子来简要说明 DBA 经常使用的存储过程 + 事件来清理过期…