
数据库生态技术
常耀斌
CTO,AI科学家。2024年,清华大学出版社发行《大数据架构之道和项目实战》《AI赋能企业数字化转型》《深度学习和大模型实战》
展开
-
高级SQL查询实战(经验总结)
SQL实战开始!下面是各个表的关系图/*SQLyog Ultimate v12.09 (64 bit)MySQL - 5.6.35-log : Database - test**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNIQUE_CHECK原创 2020-08-25 17:16:00 · 2536 阅读 · 1 评论 -
漫谈红黑树
来源:伯乐专栏作者/玻璃猫,微信公众号 - 程序员小灰二叉查找树(BST)具备什么特性呢?1.左子树上所有结点的值均小于或等于它的根结点的值。2.右子树上所有结点的值均大于或等于它的根结点的值。3.左、右子树也分别为二叉排序树。下图中这棵树,就是一颗典型的二叉查找树:1.查看根节点9:2.由于10 > 9,因此查看右孩子13:...原创 2020-04-22 16:34:40 · 451 阅读 · 0 评论 -
图解B+树的原理
转载:https://blog.youkuaiyun.com/qq_35571554/article/details/82759668一个m阶的B树具有如下几个特征:1.根结点至少有两个子女。2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m4.所有的叶...原创 2020-04-22 16:16:13 · 1587 阅读 · 0 评论 -
Redis持久化的工作原理和实战
Redis持久化分为rdb和aof两种:Rdb持久化Rdb持久化优点rdb持久化文件只有一个文件。读写效率比较高。 容错性,数据迁移比较快。 启动效率高。 性能最大化。持久化fork子进程持久化数据。Rdb持久化策略:save 900 1 在900秒,有至少一个key发生变化,就需要持久化。 save 300 10 在300秒,有至少10个key发生了变化,持久化。...原创 2018-08-09 09:09:00 · 243 阅读 · 1 评论 -
MongoDB 发布了最新的 4.0 版本,支持事务处理。
MongoDB 最近发布了最新的 4.0 版本。毫无疑问,这一版本的主要特性是支持多文档 ACID 事务。MongoDB 向与关系型数据库产品的融合迈出了一大步,现在支持会话的概念,并可以使用 start_transaction() 和 commit_transaction() 方法将多个数据库命令包含在单个 MongoDB 事务中。MongoDB 的事务遵循著名的 ACID 模型。...原创 2018-07-29 20:52:43 · 3797 阅读 · 0 评论 -
Mongodb集群操作的JAVA代码详解
本次测试是通过java代码直接连接Mongodb集群,执行增删改查操作来完成对集群的测试。 jar准备由于mongodb复制集的版本为3.4.3,需要我们到mongodb官网去下载对应的java驱动包mongo-java-driver-3.2.1.jar。集群连接package com.mongo.demo;import java.net.UnknownHostExcep...原创 2018-07-26 09:15:05 · 1419 阅读 · 1 评论 -
MongoDB集群的用户创建(Windows)
添加超级管理员上面的复制集搭建方式为不需要认证和授权,但是在实际生产环境中,出于安全的考虑,会为复制集设置用户名和密码和账户,下面是复制集用户的相关操作和认证授权,复制集以不需要认证的方式启动后, 使用mongo.exe -port ** 连接到primary节点,然后执行下面的命令,此时就为该复制集创建了超级管理员。use admin;db.createUser( { ...原创 2018-07-26 09:13:19 · 1819 阅读 · 0 评论 -
MongoDB复制集搭建(Windows)
集群环境准备 首先确保Windows下安装了Mongodb,具体下载地址载网址是:https://www.mongodb.com/download-center#community。 直接下载msi安装版:mongodb-win32-x86_64-2008plus-ssl-3.4.3-signed.msi。下载后进行安装(可以自定义安装目录)。复制集搭建在某盘创建存放Mongodb复...原创 2018-07-26 09:11:49 · 783 阅读 · 0 评论 -
MongoDB集群工作原理
随着业务数据和并发量的增加,若只使用一台MongoDB服务器,存在着断电和数据风险的问题,故采用Mongodb复制集的方式,来提高项目的高可用、安全性等性能。MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。复制还允许从硬件故障和服务中断中恢复数据。我们以一台windows下安装三个mong...原创 2018-07-26 09:10:02 · 2877 阅读 · 1 评论 -
数据库卸载五部曲(适合MysqlMongoDB/Oracle)
数据卸载方法step1.关闭数据库(oracle,mysql,MongoDB)服务cmd services.msc 停止或者停不掉就接着往下做step2.删除注册表regeditQL进入HKEY_LOCAL_MACHINE--->SYSTEM------>control --->services删除(oracle,mysql,MongoDB)服务step...原创 2018-07-31 14:24:15 · 272 阅读 · 1 评论 -
Mongodb安装三部曲
Mongodb下载https://www.mongodb.com/download-center#community。 直接下载msi安装版:mongodb-win32-x86_64-2008plus-ssl-3.4.3-signed.msi创建data目录和log目录 我把Mongodb安装到D:\mongodb下,在本目录创建data,data下创建db文件夹和log文...原创 2018-07-30 17:27:45 · 248 阅读 · 1 评论 -
Mongodb的核心数据操作MongodbBaseDao
public abstract class MongodbBaseDao<T> { Logger log = Logger.getLogger(this.getClass()); // spring mongodb 集成操作类 protected MongoTemplate mongoTemplate; // 链接本地数据库并创建数据表 public void Crea...原创 2018-09-20 13:51:16 · 794 阅读 · 0 评论 -
TiDB的核心原理深入研究
TIDB要解决问题:1. 兼容mysql2. 分布式存储,扩展能力强。3. 支持OLTP4. 可以直接利用TiSpark做实时分析。5. 稳定的高可用性6. 无阻塞在线DDLTIDB特点1. 水平扩展:包括计算能力和存储能力。TiDB Server 负责处理 SQL 请求,随着业务的增长,可以简单的添加 TiDB Server 节点,提高整体的处理能力,提供更高的吞...原创 2018-11-26 16:32:10 · 2615 阅读 · 0 评论 -
支持事务机制的高并发NewSql数据库设计实战
NewSQL 是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性。NoSQL将改变数据的定义范围。它不再是原始的数据类型,如整数、浮点。数据可能是整个文件。NoSQL可能会吓到DBA,因为他们担心失去他们自己的领域。NoSQL数据库是非关系的、水平可扩展、分布式并且是开源的。MongoDB的创始人表示N...原创 2018-12-28 12:18:14 · 583 阅读 · 0 评论 -
Redis启动和监控
前端启动的命令: [root@itheima bin]# ./redis-server前端启动的关闭: 强制关闭:Ctrl+c 正常关闭:[root@itheima bin]# ./redis-cli shutdown启动界面: 前端启动的问题: 一旦客户端关闭,则redis服务也停掉。后端启动...原创 2018-07-25 13:48:13 · 522 阅读 · 0 评论 -
Redis3.0安装经验总结
redis下载官网地址:http://redis.io/下载地址:http://download.redis.io/releases/redis-3.0.0.tar.gzredis的安装环境会安装到linux系统中。第一步:安装VMware,并且在VMware中安装centos系统(参考linux教程)。第二步:将redis的压缩包,上传到linux系统第三步:对red...原创 2018-07-25 13:45:47 · 562 阅读 · 0 评论 -
数据库连接池技术为什么被商业的占比这么高?
数据库连接池技术有如下几个优点:资源可重用:由于数据库连接得以重用,避免了频繁创建,释放连接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增加了系统运行环境的平稳性。 系统可加速:数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于连接池中备用。此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接避免了数据库连接初始化和释放过程的时间开销,从而减少了系统的...原创 2018-08-15 09:48:16 · 321 阅读 · 0 评论 -
TIDB的单机环境安装一分钟搞定
网站:https://pingcap.com/docs-cn/op-guide/binary-deployment/ 官方文档 下载:mysql57服务端wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm yum install -y mysql57-community-release-el7-1...原创 2018-09-05 09:32:09 · 1987 阅读 · 0 评论 -
OLAP与OLTP的优化方案对比
OLAP、OLTP数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。...原创 2018-09-04 14:34:03 · 889 阅读 · 0 评论 -
初识TiDB分布式数据库
目前最流行的分布式数据库有两类,一个是以Google Spanner为代表,一个是以AWS Auraro为代表。Spanner 是 shared nothing 的架构,内部维护了自动分片、分布式事务、弹性扩展能力,数据存储还是需要 sharding,plan 计算也需要涉及多台机器,也就涉及了分布式计算和分布式事务。主要产品代表为TiDB、CockroachDB、OceanBase等;这三个产品...原创 2018-09-03 15:29:15 · 2796 阅读 · 0 评论 -
Redis核心技术进阶四(Java开发)
JedisJedis使用java语言开发的程序,用来连接redis服务java API。调用jedis 接口就可以操作redis服务。 创建java工程 创建java工程,导入jar文件。jedis核心包 jedis连接池 连接单机版redis 连接池连接redis //通过连接池连接redis @Test p...原创 2018-08-27 10:26:05 · 465 阅读 · 0 评论 -
Redis核心技术进阶三(主从复制)
Redis主从复制分析:主从复制:容错。思考:主从复制,需要至少2台redis服务。一台主机器(读写),一台从机器(备份,读)。 模拟2个redis服务: 创建2个redis服务,2个redis服务端口不相同。创建redis服务创建2个目录:6379,6380,这两个目录和redis端口相同。拷贝:redis安装目录bin到6379,...原创 2018-08-27 10:22:50 · 280 阅读 · 0 评论 -
Redis核心技术进阶二(事务处理)
Redis事务测试思路:开启redis事务后,执行命令中间出现了错误,查看事务是否回滚?模拟错误:使用lpop出栈一个String类型数据,lpop只能操作list数据类型。出现错误。127.0.0.1:6379> get age"19"127.0.0.1:6379> multiOK127.0.0.1:6379> incr ageQUEUED...原创 2018-08-27 10:18:15 · 272 阅读 · 0 评论 -
Redis核心技术进阶一(数据结构)
Redis数据结构redis是一种高级的key:value存储系统,其中value支持五种数据类型:1.字符串(strings)2.字符串列表(lists)3.字符串集合(sets)4.有序字符串集合(sorted sets)5.哈希(hashes)而关于key,有几个点要提醒大家:1.key不要太长,尽量不要超过1024字节,这不仅消耗内存,而且会降低查找的效率;...原创 2018-08-27 10:15:36 · 552 阅读 · 0 评论 -
初识Redis
Redis简介Redis是一个nosql,数据结构是:key-value.使用c语法开发。由于是使用c语法开发,安装Linux系统,需要编译。使用gcc编译程序编译。Redis安装需要安装gcc编译程序插件:从互联网上直接下载从磁盘镜像安装(重启后需要从新挂载)直接磁盘镜像安装:挂载磁盘 命令:mount /dev/cdrom /mnt 安装 安装命令:yum...原创 2018-08-27 10:10:45 · 269 阅读 · 0 评论 -
Elasticsearch全文本搜索和原理分析
Elasticsearch一个高可扩展的开源的全文本搜索和分析工具。允许你以近实时的方式快速存储、搜索、分析大容量的数据。Elasticsearch是一个基于ApacheLucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。ElasticSearch 有四种方式来构建数据库最简单的方法是使用indexAPI,将一...原创 2018-08-23 14:42:26 · 797 阅读 · 0 评论 -
插件check_mysql_health安装和错误解决(监控Mysql状态使用)
Nagios下check_mysql_health插件的安装Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。本博客是Nagios下check_mysql_health插件的安装及错误解决.安装check...原创 2018-08-23 11:34:16 · 1030 阅读 · 0 评论 -
MongoDB在Windows安装和数据导入实战
mongoDB下载下载网址是:https://www.mongoDB.com/-center#community。 直接下载msi安装版:mongoDB-win32-x86_64-2008plus-ssl-3.4.3-signed.msimongoDB安装 创建data目录和log目录,我把mongoDB安装到E:\mongoDB下,在本目录创建data,data下创建db文件夹和l...原创 2018-08-22 10:19:10 · 607 阅读 · 0 评论 -
Redis在Linux的安装与启动的最佳实践
1.安装环境准备gcc编译程序安装由于redis是利用c语法开发,安装在Linux系统需要编译,可以使用gcc编译程序编译。 gcc编译程序插件可以采用互联网在线下载。 在linux系统输入命令yum -y install gcc,然后一直等待,只到出现Complete! 即可。 安装完毕后,可以输入命令yum list gcc 查看gcc安装情况,若出现以下相似字样,则说明安装...原创 2018-08-22 09:21:17 · 304 阅读 · 0 评论 -
MongoDB集群的工作原理分析
随着业务数据和并发量的增加,若只使用一台MongoDB服务器,存在着断电和数据风险的问题,故采用Mongodb复制集的方式,来提高项目的高可用、安全性等性能。MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。复制还允许从硬件故障和服务中断中恢复数据。我们以一台windows下安装三个mon...原创 2018-08-20 10:06:52 · 1400 阅读 · 0 评论 -
Mysql数据迁移到TIDB详解
我从业16年来,使用了太多的数据库(RDBMS->NoSQL->NewSQL),首先我说一下数据库的变迁和发展历史:以 MySQL 为例刚开始时,它是一个单机模式,但是随着数据库的数据量的增加及用户对性能要求的提高,它的存储容量和性能都遇到了瓶颈。 这些需求催生了新的解决方案,那就是 MySQL 主从模式,进而将读写分离,减轻了读写系统的负担。虽然可以是多从,但是主是单点的。接下...原创 2018-09-05 10:12:11 · 7609 阅读 · 0 评论