MySQL
文章平均质量分 55
TensorGroot
secret
展开
-
从mysql源码看GAP LOCK死锁问题
环境篇:关于mysql源码开发环境搭建1.基础开发包安装,一般ubuntu安装完这些就OK了> sudo apt-get -y install \ libreadline-dev libreadline6 libncurses5-dev libboost-dev \ g++ openssl libssl-dev bison make cmake git && \ apt-get clean2.容器的选择,大家大可以根据自己的喜好来选择,无论是docker、W.原创 2020-07-17 14:06:05 · 360 阅读 · 0 评论 -
sql string 转 key value 形式
SELECT str_result,@key:=',key=',@i:=LOCATE(@key,str_result)+length(@key),@len:=LOCATE(',',str_result,LOCATE(@key,str_result)+1) -@i,substr( stat_result, @i ,@len)FROM t_table...原创 2018-10-26 10:59:33 · 1774 阅读 · 0 评论 -
myrocks 优化数值存储方面
数值压缩存储方面CREATE TABLE t1(a INT, b VARCHAR(20), c char(5), d int, pk INT AUTO_INCREMENT, PRIMARY KEY(pk) comment 'cf_1', unique key idx2(b) comment 'cf_2‘) engine= rocksdb; INSERT INTO t1 (pk,a,b,c) VAL...原创 2018-04-19 15:55:05 · 412 阅读 · 0 评论 -
RocksDB sst 文件组成格式
Footer 存储了index/meta_index的offset,还存了magic标识Metaindex 存储了 [meta block: filter] .、[meta block: properties] [meta block: compression dictionary]、[meta block: range deletion tombstone]、 [metaindex block]...原创 2018-04-23 15:09:45 · 4527 阅读 · 0 评论 -
myrocks store format 举例
create table coltypes(c1 int not null,c2 int,c3 char(10) not null,c4 char(10),c5 varchar(10) not null,c6 varchar(10),c7 blob not null,c8 blob,primary key c1) comment="ttl_duration=原创 2017-12-14 14:53:38 · 481 阅读 · 0 评论 -
myrocks proc init梳理
void native_procedure_init() { TABLE_LIST tables; MEM_ROOT mem; READ_RECORD read_record_info; TABLE *table; int error; DBUG_ENTER("native_procedure_init");#ifdef HAVE_PSI_INTERFACE ini原创 2017-10-17 15:31:33 · 367 阅读 · 0 评论 -
myrocks ttl的使用
const char *const RDB_TTL_DURATION_QUALIFIER = "ttl_duration";/* Qualifier name for a custom per partition ttl duration.*/const char *const RDB_TTL_COL_QUALIFIER = "ttl_col";从 myrocks 源码中原创 2017-10-17 10:49:54 · 386 阅读 · 0 评论 -
myrocks 的 pk 的生成原理(k/v)
rocksdb 是一种key/value 存储的 ,那么 在一条数据 发生存储的时候,又是怎么计算 key值的第一步 先 存入当前key的 index_number(这个num 是rocksdb 自增计算的 存储在rocksdb内,key/value存储 和其他数据一样)index_number 可以range delete之类的操作 rdb_netbuf_store_i原创 2017-10-19 15:17:27 · 751 阅读 · 0 评论 -
myrocks 的事务
myrocks 支持两种事务 一种是Rdb_writebatch_impl 另一种 是 Rdb_transaction_impl前一种 将 将 一次batch 作为一次事务提交,而后一种 是 rocksdb 内置的事务了而myrocks对事务的选择,可以从源码里看出 如果跳过 tx_api 并且是 在主从同步 使用 Rdb_writebatch_impl ,或者 在 master原创 2017-10-19 15:30:20 · 382 阅读 · 0 评论 -
mysql 与 engine 之间桥梁
我们都知道 c++ 是一种动态编译,静态执行的 语言 ,所以我们很好奇,为什么 mysql 可以做到 动态加入 engine的能力,翻开 MySQL 源码cmake/plugin.cmake IF(ARG_MANDATORY) SET (mysql_mandatory_plugins "${mysql_mandatory_plugins} bu原创 2017-10-19 14:59:20 · 302 阅读 · 0 评论 -
myrocks build 镜像
git clone https://github.com/facebook/mysql-5.6.git cp Dockerfile start .sh my.cnf mysql-5.6/mysql_buildcd mysql-5.6 && docker build -fmysql_build/Dockerfile --tag ${tag_mysql} .原创 2017-09-30 14:56:50 · 369 阅读 · 0 评论 -
yacc 入门 demo
看了 mysql parse 着手看了看 yyparseinclude.h#ifndef MAIN_HPP#define MAIN_HPP#include #include #include using namespace std;#define YYSTYPE string#endiflex.l%{#include "include.h原创 2017-09-12 11:10:19 · 1403 阅读 · 0 评论 -
MySQL 读取 frm 源码
MySQL 底层实现原创 2017-09-07 15:30:51 · 1347 阅读 · 0 评论 -
MySQL 源码导读 5.7
mysql 主要脉络 (看c/c++ 建议使用QT)文件 函数1.sql->mysqld.cc(这是整个MySQL的入口) mysqld_socket_acceptor->connection_event_loop();2.sql/conn_handler->connection_handler_manager.ccm_connectio原创 2017-09-05 16:41:18 · 1960 阅读 · 1 评论
分享