码迷,mamicode.com
首页 > 其他好文 > 详细

MyRocks文档-Getting Started with MyRocks

时间:2017-02-03 23:10:12      阅读:355      评论:0      收藏:0      [点我收藏+]

标签:for   https   生产环境   prim   sql语法   特性   reverse   nod   存储引擎   

Getting Started with MyRocks

Download Facebook MySQL 5.6, then build from source

安装步骤,这都不会就不用往下做了,直接给连接https://github.com/facebook/mysql-5.6/wiki/Build-Steps

Set up my.cnf

想要把RocksDB引擎给启动起来,你至需要把至少下面这一些参数给写到my.cnf文件里面去

[mysqld]
rocksdb
default-storage-engine=rocksdb
skip-innodb
default-tmp-storage-engine=MyISAM
collation-server=latin1_bin (or utf8_bin, binary)

log-bin
binlog-format=ROW

如果你想在同一个实例里面同时使用Innodb和RocksDB的话,需要把skip-innodb改成allow-multiple-engines,但这种使用方法不推荐在生产环境中使用,因为多种存储引擎在一起并不能实现真正的事务【TODO1】,但如果只是用来做实验,那就随意了
Statement模式只能是在Slave上这么设置,而主库不行,因为MyRocks并不支持next-key锁(译者注:主备参数的一致性一定要保证,否则就是给自己挖了一个屎坑)

Initialize database with mysql_install_db

mysql_install_db --defaults-file=/path/to/my.cnf

Start mysqld

mysqld_safe --defaults-file=/path/to/my.cnf

Create RocksDB table

举一个栗子

  CREATE TABLE `linktable` (
      `id1` bigint(20) unsigned NOT NULL DEFAULT ‘0‘,
      `id1_type` int(10) unsigned NOT NULL DEFAULT ‘0‘,
      `id2` bigint(20) unsigned NOT NULL DEFAULT ‘0‘,
      `id2_type` int(10) unsigned NOT NULL DEFAULT ‘0‘,
      `link_type` bigint(20) unsigned NOT NULL DEFAULT ‘0‘,
      `visibility` tinyint(3) NOT NULL DEFAULT ‘0‘,
      `data` varchar(255) NOT NULL DEFAULT ‘‘,
      `time` bigint(20) unsigned NOT NULL DEFAULT ‘0‘,
      `version` int(11) unsigned NOT NULL DEFAULT ‘0‘,
      PRIMARY KEY (link_type, `id1`,`id2`) COMMENT ‘cf_link_pk‘,
      KEY `id1_type` (`id1`,`link_type`,`visibility`,`time`,`version`,`data`) COMMENT ‘rev:cf_link_id1_type‘
    ) ENGINE=RocksDB DEFAULT COLLATE=latin1_bin;

这个栗子里面演示了MyRocks里面的一些重要的特性以及一些限制,关于限制请看:MyRocks Limitations

  • MyRocks的数据存储在RocksDB存储引擎内,每一个索引都有单独的数据文件。RocksDB内部是通过"Column Family"来去存储索引的,在默认情况下,所有的数据都会被存到一个默认的的Column Family里面去,你可以通过设置这个索引的Comment来去改变它。在上面这个栗子里面,主键被存储到了一个叫做cf_link_pk的Column Family里面,而id1_type 存储到了rev:cf_link_id1_type里面
  • MyRocks还有一个特性被称为"Reverse Column Family",Reverse Column Family常常被用在会使用order by xxx desc这样的SQL语法里面,只需要在Column Family前面加上一个"rev:"便可以创建一个"Reverse Column Family",例如上面这个栗子
    (译者注:Column Family就是列簇,考虑两种场景,第一,当我们想访问某一行的部分数据时,通常需要把整行读取出来,然后读取部分列的数据,这种效率固然不高,第二,我们也不能把每一列的数据全部拆开,这样当我们想读取多列的数据的时候,又一样歇菜了。因此Column Family的设计其实就是把会访问到的数据列单独给聚合到一起,其实就是索引里面的覆盖索引的设计思想)

MyRocks文档-Getting Started with MyRocks

标签:for   https   生产环境   prim   sql语法   特性   reverse   nod   存储引擎   

原文地址:http://www.cnblogs.com/wuwl/p/6363583.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!