
数据库
cjfeii
Hello World.
展开
-
vector向量数据库
向量数据库是近几年刚出来的一种新型数据库,用于存储向量数据,并支持对向量数据做相关相似度检索,本文主要介绍向量数据库的研发方向,以及成熟的向量数据库应该具备的能力。原创 2023-10-13 10:47:39 · 350 阅读 · 0 评论 -
basic paxos算法简述
P2c:如果一个编号为 n 的提案具有 value v,该提案被提出,那么存在一个多数派,要么他们中所有人都没有接受(accept)编号小于 n 的任何提案,要么他们已经接受(accept)的所有编号小于 n 的提案中编号最大的那个提案具有 value v;P2a:一旦一个具有 value v 的提案被批准(chosen),那么之后任何 Acceptor 再次接受(accept)的提案必须具有 value v;P1:一个 Acceptor 必须接受第一次收到的提案。Paxos算法中的角色允许身兼数职。原创 2023-08-04 16:49:36 · 335 阅读 · 0 评论 -
云原生数据库新趋势
存算分离的架构下,如何做计算下推?如何支持多写?DDC场景下的存算分离:CPU、MEM、Disk?K8S + 数据库 的前景?原创 2021-10-09 10:44:49 · 200 阅读 · 0 评论 -
硬件对数据库设计的影响
0. 硬件一直在影响着数据库设计为什么会有WAL?是为了把随机写开销化成顺序写。为什么会有buffer pool?为了写操作和读操作更加迅速。为什么我们要用Page作为B+ Tree的节点单位?为了简化磁盘读取方式。为什么Wisckey火了?因为SSD的大规模使用,使得LSM的架构可以有更好的设计。1. CPU单核CPU性能提升不明显,多核CPU带来的性能损耗;NUMA架构下如何管理多核对同一块内存的访问?并发控制?如何减少CPU陷入内核?内核旁路?用户态?如何降低CPU利用率?算法原创 2021-10-09 10:35:31 · 296 阅读 · 0 评论 -
分布式数据库的挑战
1. 分片如何保证你选的partition key在数据增长的时候依然保持均匀分布?如何选择Partition的列?是不是应该在Query的比较多的列上做Partition?Join的比较频繁的2个Region,是不是一般放到一个节点比较好?(跨Region查询)如何评价不同分片策略的优劣?2. 事务如何优化2PC?怎样做并发控制,怎么控制写写冲突(一般通过锁),读写冲突(MVCC)?要支持哪些隔离级别?发号器?如何做?3. 优化器跨Region的join如何优化?如何做SQ原创 2021-10-09 10:32:36 · 214 阅读 · 0 评论 -
MySQL 如何在线备份历史表
大家都知道日志文件,具有“只追加写不修改”的属性,历史表和日志文件差不多,也具有这个属性。 同时和日志文件一样,历史表也具有“顺序读”和“随机读”的特点,所以有时历史表会加一些索引。 那么问题来了:随着时间的推移,历史表数据会越来越多,使其“追加写”的性能越来越差,那现在应该怎么办呢?其中一个方法就是历史表热备。原创 2015-12-17 09:39:02 · 1924 阅读 · 0 评论 -
MySQL 如何为一个非常大的数据库设置一个备库?
0. 安装启动备库。1. 分析数据库数据分布以及应用逻辑,找出append-only-table,因为这样的数据表都会很大。2. 忽略append-only-table,导出数据库:mysqldump -uroot --ignore-table=db_name.append_only_table db_name > db_name_part.sql3. 将数据导入到备库:mysql -uroot d原创 2015-11-30 11:42:19 · 1159 阅读 · 0 评论 -
What does information_schema.TABLES.DATA_FREE mean in MySQL?
1. DATA_FREE 是什么The DATA_FREE column shows the free space in bytes for InnoDB tables.DATA_FREE是 InnoDB 表空间中没有使用的空间,每当从 InnoDB 表中删除了一行内容,该段空间就会被留空。而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的空间更大。 如下:...原创 2015-11-26 17:29:07 · 2462 阅读 · 0 评论 -
Hive 安装教程
Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 sql 查询功能,可以将 SQL 语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的 MapReduce 统计,不必开发专门的 MapReduce 应用,十分适合数据仓库的统计分析。 本文主要介绍在 CentOS 下 安装 Hive环境。原创 2015-10-26 14:17:29 · 13914 阅读 · 0 评论 -
MySQL 中的 base64 函数
MySQL在5.6版本的时候增加了to_base64和from_base64函数,在此之前没有内部函数,只能使用User-Defined-Function。 本文分别介绍这两种方式下base64函数的使用。原创 2016-03-25 15:35:36 · 44515 阅读 · 1 评论 -
提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t whe转载 2015-12-10 11:25:29 · 11684 阅读 · 3 评论 -
MySQL: 忘记root用户密码
1. 杀掉正在运行的mysqlkillall -TERM mysqld2. 启动mysqlPATH_TO_MYSQL/bin/mysqld --skip-grant-tables &3. 修改密码mysql> use mysqlmysql> update user set password=password("new_pass") where user="root";mysql> flush p原创 2016-05-30 16:20:53 · 448 阅读 · 0 评论 -
openresty-IP字符串转数字
IP字符串转换成数字原创 2016-06-28 11:44:56 · 2083 阅读 · 0 评论 -
MySQL 大表迁移简单方案
1. 同一个 MySQL 实例中大表迁移有两种方法,应用在不同的场景下:-- 1. 重命名实现大表完整迁移mysql> RENAME TABLE src_db.big_table TO dst_db.big_table;-- 2. 大表部分迁移mysql> CREATE TABLE dst_db.big_table AS SELECT * FROM src_db.big_table WHERE原创 2015-12-03 10:45:42 · 10304 阅读 · 0 评论 -
MySQL 如何快速导入 dump.sql 到数据库中?
导入dump.sql最常用的方法就是:mysql -uroot database_name < dump.sql但是如果dump.sql文件比较大的话,导入过程将会非常漫长,下面主要是通过调整/etc/my.cnf的相关参数,来加快导入的速度。原创 2015-11-30 11:22:00 · 6898 阅读 · 0 评论 -
MySql 启动报错:The server quit without updating PID file 如何解决
MySQL 启动报如下错误是如何解决的?Starting MySQL. ERROR! The server quit without updating PID file (/home/mysql/data/mysql.pid).原创 2015-09-16 14:52:40 · 10413 阅读 · 1 评论 -
ubuntu下安装Python的MySql的开发环境
目标:在Python中通过“import torndb”,去访问mysql数据库。一.安装mysql-server:1.ubuntu安装mysql-server, sudo apt-get install mysql-server2.登陆mysql: mysql -u root -p3.mysql的一些常用操作: 1.show da原创 2013-10-22 18:08:14 · 11169 阅读 · 0 评论 -
如何用Redis做LRU-Cache
LRU(Least Recently Used)最近最少使用算法是众多置换算法中的一种。 Redis中有一个maxmemory概念,主要是为了将使用的内存限定在一个固定的大小。Redis用到的LRU 算法,是一种近似的LRU算法。1 设置maxmemory上面已经说过maxmemory是为了限定Redis最大内存使用量。有多种方法设定它的大小。其中一种方法是通过CONFIG SET设定,如下:12原创 2015-08-04 10:36:10 · 22306 阅读 · 1 评论 -
常用的 mysqldump 命令汇总
1 导出数据库-- 导出所有数据库的所有表数据以及表结构mysqldump -h127.0.0.1 -umyuser -pmypasswd -A > all_db.sql-- 导出指定数据库‘mydatabase’的所有表数据以及表结构mysqldump -h127.0.0.1 -umyuser -pmypasswd mydatabase > mydatabase.sql-- 导出指定数据库‘m原创 2015-10-20 18:06:46 · 742 阅读 · 0 评论 -
Redis 数据恢复
本文主要介绍了 Redis 数据恢复的机制:如果只配置 AOF ,重启时加载 AOF 文件恢复数据;如果同时配置了 RDB 和 AOF ,启动是只加载 AOF 文件恢复数据;如果只配置 RDB,启动是将加载 dump 文件恢复数据。原创 2015-11-10 16:23:26 · 4822 阅读 · 0 评论 -
数据库系统——索引结构综述
来自于杜克大学计算机学院https://www.cs.duke.edu/courses/fall02/cps196.3/lectures/01-intro-notes.pdf原创 2013-08-30 16:36:46 · 1856 阅读 · 0 评论 -
清空mysql慢查询日志
清空mysql慢查询日志原创 2015-08-19 15:48:28 · 3185 阅读 · 0 评论 -
Redis集群主备模式部署
网上有很多用Ruby安装Redis-cluster的文章,但是在实际环境下不想安装Ruby,所以本文主要介绍了用Redis命令部署Redis集群,并且为集群中每一个master实例增加一个slave实例。原创 2015-08-06 17:33:29 · 11423 阅读 · 2 评论 -
数据库系统——B+树索引
原文来自于:http://dblab.cs.toronto.edu/courses/443/2013/05.btree-index.html1. B+树索引概述在上一篇文章中,我们讨论了关于index的几个中重要的课题:A) index是保存在磁盘上的一种数据结构,用于提高查询或是扫描record的速度。B) 排序索引树通过保存page的指针加速record的查找。(ISAM)翻译 2013-09-01 22:58:33 · 31277 阅读 · 2 评论 -
数据库系统——关系型数据在磁盘上的存储布局
关系型数据在磁盘上的存储布局1.基于page的heap fileHeap file是保存page数据的一种数据结构。从功能上来说,Heap file类似于内存数据结构中的链表。它可以作为通用数据项的一种无序容器。Heap file和链表结构类似的地方:--高效的增加(append)功能--支持大规模顺序扫描--不支持随机访问下面是Heap file自有的一些特性:-翻译 2013-05-04 19:22:41 · 8951 阅读 · 2 评论 -
MySQL + keepalived (CentOS7)高可用方案
本文主要介绍了利用 keepalived 实现 MySQL 数据库的高可用。 由于要做高可用,那么自然就需要 MySQL 双主模式,又因为数据库的特殊性,我们需要特别注意主备间的切换(不是想切就切),这个时候就需要 keepalived 非抢占模式。所以我们需要做:1. 安装 MySQL 双主(被动)模式;2.安装 keepalived nopreempt 模式。原创 2015-09-21 10:34:13 · 8059 阅读 · 1 评论 -
部署 MySQL 主从模式
主要介绍了如何部署 MySQL 主从模式,下面是 MySQL 的两台主机:master: 192.168.10.10slave : 192.168.10.11两个实例都是新装 MySQL实例。原创 2015-09-01 17:11:02 · 2286 阅读 · 0 评论 -
Pinot安装并简单部署测试环境
Pinot 是一个实时分布式的 OLAP 数据存储和分析系统。LinkedIn 使用它实现低延迟可伸缩的实时分析。Pinot 从离线数据源(包括 Hadoop 和各类文件)和在线数据源(如 Kafka)中攫取数据进行分析。Pinot 被设计是可以进行水平扩展的。原创 2015-07-30 14:17:01 · 2080 阅读 · 0 评论 -
Pinot架构介绍
Pinot 是一个实时分布式的 OLAP 数据存储和分析系统。LinkedIn 使用它实现低延迟可伸缩的实时分析。Pinot 从离线数据源(包括 Hadoop 和各类文件)和在线数据源(如 Kafka)中攫取数据进行分析。Pinot 被设计是可以进行水平扩展的。原创 2015-07-03 15:11:33 · 4789 阅读 · 0 评论 -
字典排序相关
一、字典排序的规则:两个字符串:strA: [a1 a2 ... am] , strB: [b1 b2 ... bn]1.如果其中一个字符串是另一个字符串的子串,那么子串要小于另一个字符串;2.如果这两个字符串没有子串的关系,那么从前往后遍历strA和strB,找到第一对不相同的字符ai和bi,如果aibi,则strA大于strB。3.具体字符之间的大小是如何比较的:这要看字符的字原创 2014-04-24 12:38:22 · 1067 阅读 · 0 评论 -
数据库系统——基于索引的存储结构
原文地址:http://dblab.cs.toronto.edu/courses/443/2013/04.basic-index.html1. 采用索引的动机Heap file支持大规模顺序扫描数据.理论上来说,heap file的这个特性足以实现所有SQL中的查询操作。但是,实际上它的效率将会非常差。在本篇文章中,我们讨论了一些简单的技巧,去提升数据扫描(record scan)翻译 2013-08-31 10:21:36 · 8476 阅读 · 7 评论 -
数据库系统——一种存储定长数据的索引结构--Index File
一种基于索引的存储定长数据的结构1前提条件:record定长record是按顺序存储的2架构图:DataPage:主要存放定长record,假设一个page能存放k个record;IndexPage:主要存放DataPage的pageID,pageID也是一个定长结构,假设一个IndexPage能存放m个pageID;HeadPage:主要存放第一个IndexPage和原创 2013-05-18 19:38:53 · 1740 阅读 · 0 评论 -
Redis相关的小工具:redis-load、redis-stat
redis-load、redis-stat是Redis作者antirez写的两个小工具,其中: redis-load是Redis的一个压力测试工具 redis-stat是Redis的状态监控工具 相关代码见:https://github.com/antirez/redis-tools原创 2015-08-04 17:11:27 · 7462 阅读 · 0 评论