描述
MariaDBSpider分库分表引擎调研
贺春旸
http://hcymysql.blog.51cto.com
目前开源的几款分库分表中间件MariaDBSpider引擎的安装MariaDBSpider引擎的使用MariaDBSpider引擎的性能压力测试
MySQLFabric目前性能很差http://www.innomysql.net/article/4578.html
Cobar限制太多http://www.oschina.net/p/cobar
Altas不是真正意义的分布式数据库
分表的话只支持单库多表,并不支持分布式分表,所有分表都在同一个库中。也就是说不能在多台服务器上分表。
MariaDBSpider分库分表存储引擎https://mariadb.com/kb/en/mariadb/spider-storage-engine-overview/
开发无需调整代码,应用层跟访问单机MySQL一样。DBA部署简单,由于MariaDB10默认已经捆绑了Spider引擎,无需安装。支持任意类型的SQL,没有Cobar那么多的限制。后端DB可以是任一版本,MySQL5.1/5.5/5.6,并不需要像Fabric一样,开启GITD复制模式。
MariaDBSpider引擎安装
mysql-uroot-p < /usr/local/mysql/share/install_spider.sqlSELECT engine, support, transactions,xaFROMinformation_schema.engines;/etc/init.d/mysqlrestart
MariaDBSpider引擎使用
定义后端服务器和数据库名字CREATE SERVER backend1FOREIGNDATA WRAPPERmysqlOPTIONS(HOST'192.168.1.49',DATABASE'backend1',USER'admin',PASSWORD'123456',PORT3306);
MariaDBSpider引擎使用
定义分片规则CREATE TABLE `sbtest1`(`id`int(10) unsigned NOT NULL AUTO_INCREMENT,`k`int(10) unsigned NOT NULL DEFAULT '0',`c` char(120) NOT NULL DEFAULT '',`pad` char(60) NOT NULL DEFAULT '',PRIMARY KEY (`id`),KEY `k` (`k`)) ENGINE=SPIDER DEFAULT CHARSET=utf8 COMMENT='wrapper "mysql", table "sbtest1"'PARTITIONBY LIST (mod(id,2))(PARTITION p0 VALUES IN (0) COMMENT = 'srv"backend1"' ENGINE = SPIDER,PARTITION p1 VALUES IN (1) COMMENT = 'srv"backend2"' ENGINE =SPIDER);
MariaDBSpider引擎官方性能压测结果
MariaDBSpider引擎官方性能压测结果
MariaDBSpider引擎 生产环境慎用!
腾讯的Tspider是基于官方Spider引擎二次研发,性能提高了30%,官方原版Spider目前还不稳定,性能有待加强。