前面已经建立了索引,优化了SQL语句,并将单线程变为多线程并行执行,去重时间由最初的35秒优化为3.5秒,是不是就到此为止呢?吴老师又使用了rocksdb存储引擎替代innodb的方法。这里有必要交代一下命题的背景。这道MySQL数据库优化的题目出自是阿里内部的竞赛题,当然我是听吴老师口述的,真正的题目及其竞赛规则与竞赛环境不甚明确,但有一条是允许自由选择MySQL存储引擎。在实际的生产环境中,几乎没有可能为了单一操作的优化而改变表的存储引擎,因为这样做的代价通常很高。
顺便提一句,据刚刚得到的消息,吴老师在今天结束的决赛中获得了第三名的好成绩(前两名都是数据库内核组的),祝贺!
一、MyRocks简介
MyRocks是FaceBook开源的MySQL分支。下面链接是一篇阿里系的介绍文章,在此不再赘述。
https://yq.aliyun.com/articles/59415
二、安装配置MyRocks
1. 支持的平台官方支持OS:
CentOS 6.8
CentOS 7.2.x
经过验证的兼容编译器:
gcc 4.8.1
gcc 4.9.0
gcc 5.4.0
gcc 6.1.0
Clang 3.9.0
2. 安装前准备
(1)安装依赖包sudo yum install -y cmake gcc-c++ bzip2-devel libaio-devel bison \
zlib-devel snappy-devel
sudo yum install -y gflags-devel readline-devel ncurses-devel \
openssl-devel lz4-devel gdb git
这几个包缺一不可,gflags-devel和lz4-devel在yum中没有安装包,所以要下源码编译安装。
(2)安装gflagsgit clone https://github.com/gflags/gflags.git
cd gflags
mkdir build && cd build
ccmake ..
之后按下面的提示操作/*****
- Press 'c' to configure the build system and 'e' to ignore warnings.
- Set CMAKE_INSTALL_PREFIX and other CMake variables and options.
- Continue pressing 'c' until the option 'g' is available.
- Then press 'g' to generate the configuration files for GNU Make.
******/
make
make install
(3)安装lz4git clone https://github.com/lz4/lz4.git
cd lz4
make
make install
(4)升级gcc系统自带4.4.7,升级到任一验证过的编译器,这里升级到6.1.0
<