#database

共 10 篇与该标签相关的文章

MySQL 数据库索引技术原理初探

概述什么是索引一本书 500 页的书,如果没有目录,直接去找某个知识点,可能需要找一会儿,但是借助前面的目录,就可以快速找到对应知识点在书的哪一页。这里的目录就是索引。所以,为什么会有索引?为了提高数据查询效率。常见索引算法最简单也最容易想到的索引算法就是有序数组了,我们创建一个数组,数组按照顺序排列,我们要查找某一条记录,使用二分法就可以快速得到(log N),从图中我们可以看出,...

数据库分库分表策略

垂直切分垂直分表是基于数据库中的"列"进行,某个表字段较多,可以新建一张扩展表,将不经常用或字段长度较大的字段拆分出去到扩展表中。优点:解决业务系统层面的耦合,业务清晰与微服务的治理类似,也能对不同业务的数据进行分级管理、维护、监控、扩展等高并发场景下,垂直切分一定程度的提升IO、数据库连接数、单机硬件资源的瓶颈缺点:部分表无法join,只能通过接口聚合方式...

MySQL 间隙锁引发的血案

现象表结构索引情况执行更新的 SQL复制UPDATE material_checkup_operation_itemsSET id = id,enterprise_id = 1866,biz_code = '86',entity_id = 'd0fd94e7-df33-4e04-b020-24bedcf10a57'WHERE ...

MongoDB 新手入门 - 索引

索引可以有效的提高 MongoDB 的查询效率,如果没有索引,在匹配指定条件的文档时,MongoDB 必须执行全集合的扫描,对每一个文档进行判断是否满足查询条件。如果有合适的索引,那 MongoDB 就可以利用该索引来减少需要遍历的文档数量。简介索引是一种特殊的数据结构,它存储了集合数据集的一部分,用于快速的对集合进行遍历。索引中存储了指定字段或者一组字段的值,并且按照字段的值有序存储。索引记...

MongoDB 新手入门 - CRUD

本文是 MongoDB 新手入门 系列的第一篇,在本文中,我们将会讲解 MongoDB 基本的增删改查操作,在学习完本文后,读者将会掌握对 MongoDB 的集合文档进行基本的新增,修改,删除以及基于多种条件的查询操作。本文将会持续修正和更新,最新内容请参考我的 GITHUB 上的 程序猿成长计划 项目,欢迎 Star,更多精彩内容请 follow me。插入文档在 MongoDB shel...

MongoDB 新手入门 - Aggregation

本文是 MongoDB 新手入门 系列的第二篇,在本文中,我们将会讲解 MongoDB 的聚合框架,在看完本文后,读者可以掌握使用 MongoDB 进行常用的数据统计分析方法。本文将会持续修正和更新,最新内容请参考我的 GITHUB 上的 程序猿成长计划 项目,欢迎 Star,更多精彩内容请 follow me。简介聚合管道(Aggregation Pipelines)中包含一个或多个用于...

MySQL & MariaDB Online DDL 参考指南

概述在早期的 MySQL 版本中,DDL 操作(如创建索引等)通常都需要对数据表加锁,操作过程中 DML 操作都会被阻塞,影响正常业务。MySQL 5.6 和 MariaDB 10.0 开始支持 Online DDL,可以在执行 DDL 操作的同时,不影响 DML 的正常执行,线上直接执行 DDL 操作对用户基本无感知(部分操作对性能有影响)。不同版本的数据库对各种 DDL 语句的支持存在...

MySQL 进阶:INFORMATION_SCHEMA

在使用命令行连接 MySQL 的时候,我们在执行 SHOW DATABASES 命令时,会发现除了自己拥有权限的数据库之外,还有另外一个名为 INFORMATION_SCHEMA 的表,这个表示用来做什么用的呢?在 MySQL 中, INFORMATION_SCHEMA 是用来访问数据库的元数据(比如数据库,表的名称,列的数据类型或者访问权限等)的,在每个 MySQL 的实例中,INFORMA...

MongoDB 部署 Replica Set

架构三台Server:A 192.168.100.10 Primary/SecondaryB 192.168.100.11 Primary/SecondaryC 192.168.100.12 Arbiter安装MongoDB创建复制集访问控制密钥复制openssl rand -base64 756 > mongodb.keychmod 400 mongodb.key以...

MySQL 之 ROUND 函数四舍五入的陷阱

在MySQL中,ROUND函数用于对查询结果进行四舍五入,不过最近使用ROUND函数四舍五入时意外发现并没有预期的那样,本文将这一问题记录下来,以免大家跟我一样犯同样的错误。问题描述假如我们有如下一个数据表test,建表语句如下复制CREATE TABLE test (id int(11) NOT NULL AUTO_INCREMENT,field1 bigint(10)...