MariaDB Spider分库分表引擎调研
贺春旸 http://hcymysql.blog.51cto.com
目前开源的几款分库分表中间件 MariaDB Spider引擎的安装 MariaDB Spider引擎的使用 MariaDB Spider引擎的性能压力测试
MySQL Fabric目前性能很差 http://www.innomysql.net/article/4578.html
Cobar 限制太多 http://www.oschina.net/p/cobar
Altas 不是真正意义的分布式数据库 分表的话只支持单库多表,并不支持分布式分表,所有分表都在同一个库中。也就是说不能在多台服务器上分表。
开发无需调整代码,应用层跟访问单机MySQL一样。 DBA部署简单,由于MariaDB10 默认已经捆绑了Spider引擎,无需安装。 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复制模式。
MariaDB Spider引擎安装 mysql -uroot -p < /usr/local/mysql/share/install_spider.sql SELECT engine, support, transactions, xa FROM information_schema.engines; /etc/init.d/mysql restart
MariaDB Spider引擎使用 定义后端服务器和数据库名字 CREATE SERVER backend1 FOREIGN DATA WRAPPER mysql OPTIONS( HOST '192.168.1.49', DATABASE 'backend1', USER 'admin', PASSWORD '123456', PORT 3306 );
MariaDB Spider引擎使用 定义分片规则 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"' PARTITION BY LIST (mod(id,2)) (PARTITION p0 VALUES IN (0) COMMENT = 'srv "backend1"' ENGINE = SPIDER, PARTITION p1 VALUES IN (1) COMMENT = 'srv "backend2"' ENGINE = SPIDER);
MariaDB Spider引擎官方性能压测结果
MariaDB Spider引擎官方性能压测结果
MariaDB Spider引擎 生产环境慎用! 腾讯的Tspider是基于官方Spider引擎二次研发,性能提高了30%,官方原版Spider目前还不稳定,性能有待加强。