当前位置: 首页 > news >正文

网站建设与管理的总结在线代理网页浏览网站

网站建设与管理的总结,在线代理网页浏览网站,网站屏蔽中国ip,网站qq交谈怎么做的为什么要做这个测试 二级索引是关系型数据库相较于NoSQL数据库的一个关键差异。二级索引必须是强一致的#xff0c;因此索引的写入需要与主键的写入放在一个事务当中#xff0c;事务的性能是二级索引性能的基础。 目前市面上的分布式数据库中#xff0c;从使用体验的角度看…为什么要做这个测试 二级索引是关系型数据库相较于NoSQL数据库的一个关键差异。二级索引必须是强一致的因此索引的写入需要与主键的写入放在一个事务当中事务的性能是二级索引性能的基础。 目前市面上的分布式数据库中从使用体验的角度看主流有几种形态 1.以TiDB、CockroachDB等为代表的纯透明的用法。从表现上来看该种类型的数据库所有表都是分布式表并且不需要指定分区键其核心逻辑是使用分布式事务来维护全局索引并使用全局索引完全替代单机数据库中的二级索引。 2.以OceanBase等为代表的纯手动的用法。从表现上看该种类型的数据库在不指定分区键的情况下是以单表的形式存在的不具备扩展性创建分布式表需要使用类似分区表的语法。此类型的数据库一般也提供全局索引的能力不提供的我们一般称之为中间件而不是数据库。但与第一类不同它们一般会将全局索引作为一个可选项由用户手动的指定与创建。此外他们还会提供基于单机事务实现的本地索引Local Index。 3.同时提供以上两种用法的PolarDB-X。在不指定分区键的情况下与第一类数据库类似使用分布式表全局索引来提供透明的分布式体验也允许手动指定分区键使用本地索引等技术提升性能。 在之前的文章中 我们提出 1.透明自动的易用性决定了分布式数据库的使用下限但性能并不是最优的有更高的成本代价 2.手动能够提供最优的性能但使用门槛会有所增加 分布式数据库需要为大多数场景提供能够透明使用的能力也要为少数性能要求高的场景提供手动调优消除分布式事务的能力。 这个观点的重要依据是纯透明的模式本质上是使用分布式事务全局索引来替代单机数据库中的事务索引而分布式事务全局索引与单机事务索引存在较大的性能差异。 本次测试将重点关注不同分布式数据库的索引性能特别关注业内全局索引的性能与MySQL索引的性能差异。 本次测试的产品包括TiDB、OceanBase、PolarDB-X、CockroachDB选取这几个数据库有以下原因 1.他们都提供了强一致的全局索引能力是数据库而不是中间件。 2.都有开源并且都有云产品提供历史也都比较悠久资料比较多不是PPT数据库容易搞清楚内部的原理。 3.都是主要面向OLTP的数据库。 此外我们也测试了MySQL的索引性能作为对比。 测试方法 由于硬件配置比如OB用了6台机器并且租户设置上并没有占满整个机器TiDB和TiKV用了5台PolarDB-X和MySQL是直接公共云购买的等、系统参数等等对于每个数据库来说不是完全相同也不一定是最优的所以直接对比TPS是没有意义的。 我们会将每个数据库不带索引情况下TPS能够达到的峰值作为基线100%比较不同索引数目的性能相对于基线的百分比。 例如产品A不带索引能跑到10W的TPS带一个索引跑到5W那我们就认为带一个索引的情况下是基线的50%。这个百分比我们不妨称之为TPS百分比。 在产品之间的横向对比中我们会对比相同索引数目下的TPS百分比而不是TPS的绝对值。 在测试TPS百分比的时候我们会调整并发度来找到能够达到最大TPS的并发度并以最大的TPS来计算TPS百分比。 除了TPS百分比之外我们还会测试每个产品在不同索引数目情况下单次写入的RT。在RT测试中我们会用单线程来进行写入。 本次测试我们只测试insert场景这是索引写入的最基本的功能了。我们使用sysbench的oltp_insert.lua制造流量。由于我们要测试多个索引因此我们将sysbench的表结构做了修改以MySQL为例修改如下 CREATE TABLE sbtest1 (id int(11) NOT NULL AUTO_INCREMENT,k int(11) NOT NULL ,k1 int(11) NOT NULL ,k2 int(11) NOT NULL ,k3 int(11) NOT NULL ,k4 int(11) NOT NULL ,k5 int(11) NOT NULL ,k6 int(11) NOT NULL ,k7 int(11) NOT NULL ,k8 int(11) NOT NULL ,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id) ); 我们在表中增加了8个列根据测试的索引数目会在这个8个列上创建相应数目的二级索引。 同时我们要修改oltp_insert.lua在INSERT语句中增加这8个列8个列的值随机生成没有有序性避免在基于range进行分区的数据库TiDB、CockroachDB上产生热点 con:query(string.format(INSERT INTO %s (id,k,k1,k2,k3,k4,k5,k6,k7,k8,c,pad) VALUES ..(%d, %d,%d,%d,%d,%d,%d,%d,%d,%d,%s,%s),table_name, i, k_val, sysbench.rand.default(1, sysbench.opt.table_size),sysbench.rand.default(1, sysbench.opt.table_size),sysbench.rand.default(1, sysbench.opt.table_size),sysbench.rand.default(1, sysbench.opt.table_size),sysbench.rand.default(1, sysbench.opt.table_size),sysbench.rand.default(1, sysbench.opt.table_size),sysbench.rand.default(1, sysbench.opt.table_size),sysbench.rand.default(1, sysbench.opt.table_size),c_val, pad_val)) 由于不同数据库的语法、特性等不同当然还有一些坑每个数据库的建表语句可能会做一些修改每个数据库最终使用的建表语句放在附录中。 软硬件环境 本次测试使用的机器使用的是阿里云上购买的ECS规格为ecs.i2g.8xlarge 操作系统为阿里云上提供的CentOS 8.3 所有机器均在同一个地域的同一个可用区内。 所有数据库的数据文件均放在本地SSD中。 所有数据库均会在前面挂一个SLB做负载均衡。 sysbench使用的是1.0.20版本。 测试结果 我们可以看到这些分布式数据库实现的全局索引中即使只有1个索引性能也都会下跌到30%以下在8个索引的情况下性能基本都会跌倒10%以下。 而像MySQL这种单机数据库8个索引的情况下性能依然保持在85%以上。 印证了我们在 《PolarDB-X 数据分布解读四 透明 vs 手动》提到过的观点“分布式事务跟单机事务相比在成本或者说性能上依然存在不可逾越的鸿沟这个差距至少在3倍以上”。 使用全局索引替代单机数据库索引会带来很高的成本在成本敏感型的场景中需要适当的使用本地索引来降低使用成本。 在提供了本地索引的数据库中 PolarDB-X和OB的本地索引与主键具有Locality上的亲和性能使用单机事务来对索引进行写入相对于全局索引保持了非常高的性能。TiDB虽然提供了本地索引但其索引和主键不具备Locality上的亲和性无法绑定到同一个机器上因此其本地索引依然要使用分布式事务进行维护在性能上和全局索引没有太大差异成本都很高。CockroachDB的本地索引理论上与TiDB的行为类似不过CockroachDB的partition功能是商业版才提供的这次就没有进行测试了 对于TiDB和CockroachDB来说情况就比较尴尬了他们所提供的无论是全局索引还是本地索引成本都要比单机MySQL高很多。作为用户没有任何手段能消除这个代价除非你不用二级索引。 从RT的角度看 单机数据库由于事务的网络交互最少RT表现的是最好的并且跟索引的数量几乎没有关系。分布式数据库的事务由于需要更多的跨节点交互所以RT明显会比单机数据库更大。但由于分布式数据库在多分支的事务上一般都会采用并行写入的策略因此表现好的数据库RT并不会随索引数量的增加而线性增加。总体说来RT可以接受。CockroachDB全局索引的RT表现是最差的可能跟事务策略使用HLC有关其他几个数据库使用的都是TSO的方案。TiDB全局索引的RT表现的是最好的0-8个索引RT几乎没有变化说明并行优化做的非常好。自家产品PolarDB-X全局索引的RT看起来还有优化的空间虽然上涨有限但并没有做到完全的并行。我们会在后续版本进行优化。本地索引RT非常稳定并且低。OB的全局索引和本地索引表现和PolarDB-X比较类似并行优化有提升空间本地索引表现不错。 测试过程中的一个额外发现TiDB、OB、CockroachDB的自增主键auto_increment/serial都有比较严重的性能问题都要使用随机等替代方案。TiDB与CockroachDB是因为时间序带来的热点range导致OB可能是内部的一些锁导致。兼容性包括功能兼容与性能兼容性能兼容之路漫漫... 下面附上每个数据库测试的情况。 测试详情 MySQL 环境配置 版本5.7.14-AliSQL-X-Cluster-1.5.1.8-20201229-log 规格32C128G独享型 阿里云购买 测试结果 索引数量RT单线程最高TPSTPS比例00.5237599100%10.533586095%20.633485993%40.623333889%80.583163684% OceanBase 环境配置 版本社区版 3.1.4 组件机器OB Server OB Proxy6台机器分成了3个zone每个zone两个UNIT。每台机器各部一个OB Server和一个OB Proxy 租户配置 CREATE RESOURCE UNIT unit1 MAX_CPU 16, MAX_MEMORY 32G, MAX_IOPS 12800,MAX_DISK_SIZE 1000G, MAX_SESSION_NUM 6400, MIN_CPU8, MIN_MEMORY16G, MIN_IOPS12800; CREATE RESOURCE POOL pool1 UNITunit1,UNIT_NUM2,ZONE_LIST(zone1,zone2,zone3); CREATE TENANT idx_test CHARSETutf8mb4, ZONE_LIST(zone1,zone2,zone3), PRIMARY_ZONEzone1;zone2,zone3, RESOURCE_POOL_LIST(pool1) ; 需要注意的几点 OB中的表默认为单表只分布在一个节点上需要使用分区表的语法指定分区键与分区数才能成为一张分布式表OB默认的索引是本地索引需要指定Global关键字才是全局索引OB的全局索引默认也是一个单表只有一个分区只分布在一个节点上需要手动指定分区数才是一个真正的分布式索引UNIT_NUM1的情况下似乎即使是分区表也都在同一台机器上所以测试机器数要6确保UNIT_NUM2OB全局索引如果在建表语句中直接指定似乎不支持指定分区数因此全局索引需要使用单独的CREATE INDEX语句来创建OB分区表的AUTO_INCREMENT属性似乎有严重的性能问题设置了之后性能很低要去掉该属性并且将sysbench的auto_inc设为off由sysbench来生成主键值OB默认使用的时间服务是本地时间服务LTS这种模式下是不支持全局索引的需要手动修改为全局时间服务GTS SET GLOBAL ob_timestamp_serviceGTS; 测试结果 全局索引 索引数量RT单线程最高TPSTPS比例01.4072298100%12.561854826%22.811310518%43.38913013%83.9159408% 本地索引 索引数量RT单线程最高TPSTPS比例01.4072298100%11.416383288%21.376288686%41.456122685%81.475639978% TiDB 环境配置 版本6.1.0 部署结构 组件机器TiDB5台每台机器一个TiDB进程一个TiKV进程TiKVPD3台 需要注意的点 TiDB中语法上没有“全局索引”这个词但从原理角度看TiDB任何一张表都是分布式表任何一个二级索引都是全局索引它没有单表的概念不要使用AUTO_INCREMENT。TiDB中的AUTO_INCREMENT虽然是分段的不保证自增连续但拉长时间后依然是有一定时间序的所以会导致热点。需要使用AUTO_RANDOM替换AUTO_INCREMENT。TiDB中支持Partition语法但其Partition依然构建于分布式KV之上意味着每个Partition下面都对应着一个或多个TiKV中的range注意这里的range和partition语法中的range是两码事parition语法中的一个range也可能对应多个TiKV中的range这些range是会被自由的调度的。在使用了Partition语法的表上创建的索引在功能上也叫本地索引。 测试结果 全局索引 索引数量RT单线程最高TPSTPS比例01.44105112.07100%11.6531876.1130%21.6721631.2820%41.7314045.0313%81.858138.608% 本地索引 索引数量RT单线程最高TPSTPS比例01.77105521.21100%11.6849534.1947%21.8136861.7835%41.8824788.6423%82.0215776.3015% CockroachDB 环境配置 版本22.1.6 组件机器CockroachDB6台每台机器一个CockroachDB进程 CDB与TiDB的架构是类似的表构建于分布式KV之上所有表都是分布式表所有索引都是全局索引没有单表的概念。 需要注意的点 在CDB中使用Serial类型主键类似mysql中的auto_increment或者使用unique_rowid()作为主键因为这两个都是有一定时间序的都会产生显著的热点几乎无法使用。测试中使用UUID类型的列并使用 gen_random_uuid()生成主键。这个本质是一个字符串在KV层range的划分上可以认为是无序的。CDB每个连接的代价比较高无法创建太多的连接 测试结果 全局索引 索引数量RT单线程最高TPSTPS比例02.7586094100%12.811361816%22.811144013%43.41960211%85.8374249% PolarDB-X 环境配置 规格公有云8C32G*2 版本5.4.13 注意 建库时需要使用modeauto这种类型的数据库表不指定分区键的情况下是分布式表同时索引是全局索引。索引前加Local关键字可以只创建本地索引 测试结果 全局索引 索引数量RT单线程最高TPSTPS比例01.0671644.05100%12.2220045.7828%22.2513746.9719%43.0710683.9915%83.678098.4411% 本地索引 索引数量RT单线程最高TPSTPS比例01.0671644.05100%11.3469690.6097%21.3567346.6694%41.4764353.6390%81.558782.9482% 附录 OceanBase 全局索引建表语句 create database sbtest_gsi8; use sbtest_gsi8; CREATE TABLE sbtest1 ( id int(11) NOT NULL, k int(11) NOT NULL , k1 int(11) NOT NULL , k2 int(11) NOT NULL , k3 int(11) NOT NULL , k4 int(11) NOT NULL , k5 int(11) NOT NULL , k6 int(11) NOT NULL , k7 int(11) NOT NULL , k8 int(11) NOT NULL , c char(120) NOT NULL , pad char(60) NOT NULL , PRIMARY KEY (id) ) partition by hash(id) partitions 32; create index k_1 on sbtest1(k1) global partition by hash(k1) partitions 32; create index k_2 on sbtest1(k2) global partition by hash(k2) partitions 32; create index k_3 on sbtest1(k3) global partition by hash(k3) partitions 32; create index k_4 on sbtest1(k4) global partition by hash(k4) partitions 32; create index k_5 on sbtest1(k5) global partition by hash(k5) partitions 32; create index k_6 on sbtest1(k6) global partition by hash(k6) partitions 32; create index k_7 on sbtest1(k7) global partition by hash(k7) partitions 32; create index k_8 on sbtest1(k8) global partition by hash(k8) partitions 32;create database sbtest_gsi4; use sbtest_gsi4;CREATE TABLE sbtest1 ( id int(11) NOT NULL, k int(11) NOT NULL , k1 int(11) NOT NULL , k2 int(11) NOT NULL , k3 int(11) NOT NULL , k4 int(11) NOT NULL , k5 int(11) NOT NULL , k6 int(11) NOT NULL , k7 int(11) NOT NULL , k8 int(11) NOT NULL , c char(120) NOT NULL , pad char(60) NOT NULL , PRIMARY KEY (id) ) partition by hash(id) partitions 32; create index k_1 on sbtest1(k1) global partition by hash(k1) partitions 32; create index k_2 on sbtest1(k2) global partition by hash(k2) partitions 32; create index k_3 on sbtest1(k3) global partition by hash(k3) partitions 32; create index k_4 on sbtest1(k4) global partition by hash(k4) partitions 32;create database sbtest_gsi2; use sbtest_gsi2; CREATE TABLE sbtest1 ( id int(11) NOT NULL, k int(11) NOT NULL , k1 int(11) NOT NULL , k2 int(11) NOT NULL , k3 int(11) NOT NULL , k4 int(11) NOT NULL , k5 int(11) NOT NULL , k6 int(11) NOT NULL , k7 int(11) NOT NULL , k8 int(11) NOT NULL , c char(120) NOT NULL , pad char(60) NOT NULL , PRIMARY KEY (id) ) partition by hash(id) partitions 32; create index k_1 on sbtest1(k1) global partition by hash(k1) partitions 32; create index k_2 on sbtest1(k2) global partition by hash(k2) partitions 32;create database sbtest_gsi1; use sbtest_gsi1; CREATE TABLE sbtest1 ( id int(11) NOT NULL , k int(11) NOT NULL , k1 int(11) NOT NULL , k2 int(11) NOT NULL , k3 int(11) NOT NULL , k4 int(11) NOT NULL , k5 int(11) NOT NULL , k6 int(11) NOT NULL , k7 int(11) NOT NULL , k8 int(11) NOT NULL , c char(120) NOT NULL , pad char(60) NOT NULL , PRIMARY KEY (id) ) partition by hash(id) partitions 32; create index k_1 on sbtest1(k1) global partition by hash(k1) partitions 32;create database sbtest_gsi0; use sbtest_gsi0; CREATE TABLE sbtest1 ( id int(11) NOT NULL , k int(11) NOT NULL , k1 int(11) NOT NULL , k2 int(11) NOT NULL , k3 int(11) NOT NULL , k4 int(11) NOT NULL , k5 int(11) NOT NULL , k6 int(11) NOT NULL , k7 int(11) NOT NULL , k8 int(11) NOT NULL , c char(120) NOT NULL , pad char(60) NOT NULL , PRIMARY KEY (id) ) partition by hash(id) partitions 32; OceanBase 本地索引建表语句 create database sbtest_local8; use sbtest_local8; CREATE TABLE sbtest1 ( id int(11) NOT NULL, k int(11) NOT NULL , k1 int(11) NOT NULL , k2 int(11) NOT NULL , k3 int(11) NOT NULL , k4 int(11) NOT NULL , k5 int(11) NOT NULL , k6 int(11) NOT NULL , k7 int(11) NOT NULL , k8 int(11) NOT NULL , c char(120) NOT NULL , pad char(60) NOT NULL , PRIMARY KEY (id) ) partition by hash(id) partitions 32; create index k_1 on sbtest1(k1); create index k_2 on sbtest1(k2); create index k_3 on sbtest1(k3); create index k_4 on sbtest1(k4); create index k_5 on sbtest1(k5); create index k_6 on sbtest1(k6); create index k_7 on sbtest1(k7); create index k_8 on sbtest1(k8);create database sbtest_local4; use sbtest_local4;CREATE TABLE sbtest1 ( id int(11) NOT NULL, k int(11) NOT NULL , k1 int(11) NOT NULL , k2 int(11) NOT NULL , k3 int(11) NOT NULL , k4 int(11) NOT NULL , k5 int(11) NOT NULL , k6 int(11) NOT NULL , k7 int(11) NOT NULL , k8 int(11) NOT NULL , c char(120) NOT NULL , pad char(60) NOT NULL , PRIMARY KEY (id) ) partition by hash(id) partitions 32; create index k_1 on sbtest1(k1); create index k_2 on sbtest1(k2); create index k_3 on sbtest1(k3); create index k_4 on sbtest1(k4);create database sbtest_local2; use sbtest_local2; CREATE TABLE sbtest1 ( id int(11) NOT NULL, k int(11) NOT NULL , k1 int(11) NOT NULL , k2 int(11) NOT NULL , k3 int(11) NOT NULL , k4 int(11) NOT NULL , k5 int(11) NOT NULL , k6 int(11) NOT NULL , k7 int(11) NOT NULL , k8 int(11) NOT NULL , c char(120) NOT NULL , pad char(60) NOT NULL , PRIMARY KEY (id) ) partition by hash(id) partitions 32; create index k_1 on sbtest1(k1); create index k_2 on sbtest1(k2);create database sbtest_local1; use sbtest_local1; CREATE TABLE sbtest1 ( id int(11) NOT NULL , k int(11) NOT NULL , k1 int(11) NOT NULL , k2 int(11) NOT NULL , k3 int(11) NOT NULL , k4 int(11) NOT NULL , k5 int(11) NOT NULL , k6 int(11) NOT NULL , k7 int(11) NOT NULL , k8 int(11) NOT NULL , c char(120) NOT NULL , pad char(60) NOT NULL , PRIMARY KEY (id) ) partition by hash(id) partitions 32; create index k_1 on sbtest1(k1);create database sbtest_local0; use sbtest_local0; CREATE TABLE sbtest1 ( id int(11) NOT NULL , k int(11) NOT NULL , k1 int(11) NOT NULL , k2 int(11) NOT NULL , k3 int(11) NOT NULL , k4 int(11) NOT NULL , k5 int(11) NOT NULL , k6 int(11) NOT NULL , k7 int(11) NOT NULL , k8 int(11) NOT NULL , c char(120) NOT NULL , pad char(60) NOT NULL , PRIMARY KEY (id) ) partition by hash(id) partitions 32; TiDB 全局索引建表语句 create database sbtest8; use sbtest8; CREATE TABLE sbtest1 (id bigint(11) NOT NULL AUTO_RANDOM,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),KEY k_1 (k1),KEY k_2 (k2),KEY k_3 (k3),KEY k_4 (k4),KEY k_5 (k5),KEY k_6 (k6),KEY k_7 (k7),KEY k_8 (k8) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4;create database sbtest4; use sbtest4; CREATE TABLE sbtest1 (id bigint(11) NOT NULL AUTO_RANDOM,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),KEY k_1 (k1),KEY k_2 (k2),KEY k_3 (k3),KEY k_4 (k4) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4;create database sbtest2; use sbtest2; CREATE TABLE sbtest1 (id bigint(11) NOT NULL AUTO_RANDOM,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),KEY k_1 (k1),KEY k_2 (k2) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4;create database sbtest1; use sbtest1; CREATE TABLE sbtest1 (id bigint(11) NOT NULL AUTO_RANDOM,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),KEY k_1 (k1) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4;create database sbtest0; use sbtest0; CREATE TABLE sbtest1 (id bigint(11) NOT NULL AUTO_RANDOM,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4; TiDB 本地索引建表语句 create database sbtest_local8; use sbtest_local8; CREATE TABLE sbtest1 (id bigint(11) NOT NULL AUTO_RANDOM,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),KEY k_1 (k1),KEY k_2 (k2),KEY k_3 (k3),KEY k_4 (k4),KEY k_5 (k5),KEY k_6 (k6),KEY k_7 (k7),KEY k_8 (k8) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4 partition by hash(id) partitions 32;create database sbtest_local4; use sbtest_local4; CREATE TABLE sbtest1 (id bigint(11) NOT NULL AUTO_RANDOM,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),KEY k_1 (k1),KEY k_2 (k2),KEY k_3 (k3),KEY k_4 (k4) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4 partition by hash(id) partitions 32;create database sbtest_local2; use sbtest_local2; CREATE TABLE sbtest1 (id bigint(11) NOT NULL AUTO_RANDOM,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),KEY k_1 (k1),KEY k_2 (k2) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4 partition by hash(id) partitions 32;create database sbtest_local1; use sbtest_local1; CREATE TABLE sbtest1 (id bigint(11) NOT NULL AUTO_RANDOM,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),KEY k_1 (k1) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4 partition by hash(id) partitions 32;create database sbtest_local0; use sbtest_local0; CREATE TABLE sbtest1 (id bigint(11) NOT NULL AUTO_RANDOM,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4 partition by hash(id) partitions 32; PolarDB-X全局索引建表语句 drop database sbtest_gsi0; drop database sbtest_gsi1; drop database sbtest_gsi2; drop database sbtest_gsi4; drop database sbtest_gsi8; create database sbtest_gsi8 modeauto; use sbtest_gsi8; CREATE TABLE sbtest1 (id int(11) NOT NULL AUTO_INCREMENT,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),KEY k_1 (k1),KEY k_2 (k2),KEY k_3 (k3),KEY k_4 (k4),KEY k_5 (k5),KEY k_6 (k6),KEY k_7 (k7),KEY k_8 (k8) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4;create database sbtest_gsi4 modeauto; use sbtest_gsi4; CREATE TABLE sbtest1 (id int(11) NOT NULL AUTO_INCREMENT,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),KEY k_1 (k1),KEY k_2 (k2),KEY k_3 (k3),KEY k_4 (k4) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4;create database sbtest_gsi2 modeauto; use sbtest_gsi2; CREATE TABLE sbtest1 (id int(11) NOT NULL AUTO_INCREMENT,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),KEY k_1 (k1),KEY k_2 (k2) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4;create database sbtest_gsi1 modeauto; use sbtest_gsi1; CREATE TABLE sbtest1 (id int(11) NOT NULL AUTO_INCREMENT,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),KEY k_1 (k1) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4;create database sbtest_gsi0 modeauto; use sbtest_gsi0; CREATE TABLE sbtest1 (id int(11) NOT NULL AUTO_INCREMENT,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4; PolarDB-X本地索引建表语句 drop database sbtest_local0; drop database sbtest_local1; drop database sbtest_local2; drop database sbtest_local4; drop database sbtest_local8; create database sbtest_local8 modeauto; use sbtest_local8; CREATE TABLE sbtest1 (id int(11) NOT NULL AUTO_INCREMENT,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),LOCAL KEY k_1 (k1),LOCAL KEY k_2 (k2),LOCAL KEY k_3 (k3),LOCAL KEY k_4 (k4),LOCAL KEY k_5 (k5),LOCAL KEY k_6 (k6),LOCAL KEY k_7 (k7),LOCAL KEY k_8 (k8) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4;create database sbtest_local4 modeauto; use sbtest_local4; CREATE TABLE sbtest1 (id int(11) NOT NULL AUTO_INCREMENT,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),LOCAL KEY k_1 (k1),LOCAL KEY k_2 (k2),LOCAL KEY k_3 (k3),LOCAL KEY k_4 (k4) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4;create database sbtest_local2 modeauto; use sbtest_local2; CREATE TABLE sbtest1 (id int(11) NOT NULL AUTO_INCREMENT,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),LOCAL KEY k_1 (k1),LOCAL KEY k_2 (k2) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4;create database sbtest_local1 modeauto; use sbtest_local1; CREATE TABLE sbtest1 (id int(11) NOT NULL AUTO_INCREMENT,k int(11) NOT NULL DEFAULT 0,k1 int(11) NOT NULL DEFAULT 0,k2 int(11) NOT NULL DEFAULT 0,k3 int(11) NOT NULL DEFAULT 0,k4 int(11) NOT NULL DEFAULT 0,k5 int(11) NOT NULL DEFAULT 0,k6 int(11) NOT NULL DEFAULT 0,k7 int(11) NOT NULL DEFAULT 0,k8 int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id),LOCAL KEY k_1 (k1) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4;create database sbtest_local0 modeauto; use sbtest_local0; CREATE TABLE sbtest1 (id int(11) NOT NULL AUTO_INCREMENT,k int(11) NOT NULL DEFAULT 0,c char(120) NOT NULL DEFAULT ,pad char(60) NOT NULL DEFAULT ,PRIMARY KEY (id) ) ENGINE InnoDB DEFAULT CHARSET utf8mb4; CockroachDB全局索引建表语句 drop database sbtest1 CASCADE; drop database sbtest2 CASCADE; drop database sbtest4 CASCADE; drop database sbtest8 CASCADE;create database sbtest0; use sbtest0; CREATE TABLE sbtest1 (id UUID NOT NULL DEFAULT gen_random_uuid(),k int NOT NULL ,k1 int NOT NULL ,k2 int NOT NULL ,k3 int NOT NULL ,k4 int NOT NULL ,k5 int NOT NULL ,k6 int NOT NULL ,k7 int NOT NULL ,k8 int NOT NULL ,c char(120) NOT NULL ,pad char(60) NOT NULL,PRIMARY KEY (id) );create database sbtest1; use sbtest1; CREATE TABLE sbtest1 (id UUID NOT NULL DEFAULT gen_random_uuid(), k int NOT NULL ,k1 int NOT NULL ,k2 int NOT NULL ,k3 int NOT NULL ,k4 int NOT NULL ,k5 int NOT NULL ,k6 int NOT NULL ,k7 int NOT NULL ,k8 int NOT NULL ,c char(120) NOT NULL ,pad char(60) NOT NULL,PRIMARY KEY (id),INDEX k_1(k1) );create database sbtest2; use sbtest2; CREATE TABLE sbtest1 (id UUID NOT NULL DEFAULT gen_random_uuid(),k int NOT NULL ,k1 int NOT NULL ,k2 int NOT NULL ,k3 int NOT NULL ,k4 int NOT NULL ,k5 int NOT NULL ,k6 int NOT NULL ,k7 int NOT NULL ,k8 int NOT NULL ,c char(120) NOT NULL ,pad char(60) NOT NULL,PRIMARY KEY (id),INDEX k_1(k1),INDEX k_2(k2) );create database sbtest4; use sbtest4; CREATE TABLE sbtest1 (id UUID NOT NULL DEFAULT gen_random_uuid(),k int NOT NULL ,k1 int NOT NULL ,k2 int NOT NULL ,k3 int NOT NULL ,k4 int NOT NULL ,k5 int NOT NULL ,k6 int NOT NULL ,k7 int NOT NULL ,k8 int NOT NULL ,c char(120) NOT NULL ,pad char(60) NOT NULL,PRIMARY KEY (id),INDEX k_1(k1),INDEX k_2(k2),INDEX k_3(k3),INDEX k_4(k4) );create database sbtest8; use sbtest8; CREATE TABLE sbtest1 (id UUID NOT NULL DEFAULT gen_random_uuid(),k int NOT NULL ,k1 int NOT NULL ,k2 int NOT NULL ,k3 int NOT NULL ,k4 int NOT NULL ,k5 int NOT NULL ,k6 int NOT NULL ,k7 int NOT NULL ,k8 int NOT NULL ,c char(120) NOT NULL ,pad char(60) NOT NULL,PRIMARY KEY (id),INDEX k_1(k1),INDEX k_2(k2),INDEX k_3(k3),INDEX k_4(k4),INDEX k_5(k5),INDEX k_6(k6),INDEX k_7(k7),INDEX k_8(k8) ); 云原生数据库PolarDB分布式版新增标准版形态基于X-Paxos提供100%兼容MySQL的高可靠性集中式数据库服务。 阿里巴巴集团双十一同款数据库即刻拥有 PolarDB-X、OceanBase、CockroachDB、TiDB二级索引写入性能测评 - 知乎 (zhihu.com)
http://www.pierceye.com/news/438137/

相关文章:

  • 阿里巴巴 网站 建设wordpress支付宝红包
  • 如何建一个企业网站网站建设方案保障措施
  • 网站制作工作室24小时接单一起做网站
  • 专业购物网站建设多少钱搜索引擎推广的基本方法
  • 高端手机网站建设需要多少钱五金制品东莞网站建设
  • 网站运营与维护是什么意思出入成都最新规定今天
  • 网站建设 企炬江阴企业形象包装公司
  • 移动网站开发公司免费的视频网站推广软件
  • 深圳网站定制公司宝应网站建设
  • 哈尔滨 做网站公司淮南发布app下载
  • 能发朋友圈的网站建设语不同类型网站比较及网站域名设计
  • 企业融资只有两种方法seo包括网站建设吗
  • 网站制作简单协议深圳市宝安区中医院
  • 中山骏域网站建设求2021没封的良心网站
  • 域名空间网站建设要多少钱全屋定制设计流程
  • 建设网站的网站江苏旅游网站开发设计与实现
  • 河北辛集住房和城乡建设厅网站购车网站开发数据库er图
  • 简单flash个人网站网站服务器和直播服务器一样吗
  • 教育网站建设需求文档门户网站系统建设清单
  • 天津市建设与管理局网站建筑网建设通平台
  • 长沙网站开发微联讯点官网微信公众号直接同步到wordpress
  • 湖南建设监理官方网站属于网页制作平台的是?
  • 如何建设公司网站知乎湖南自驾旅游与房车协会
  • 扬中网站优化做 爱 网站视频教程
  • 服务器发布网站免费网络营销推广软件
  • 婚纱摄影类网站重庆seo招聘
  • 登陆空间商网站建站模板免费下载
  • 用php做网站用什么框架牡丹江免费发布信息的平台
  • 网站开发 专有名词江油移动网站建设
  • 百度后台管理东莞市长安镇网站制作优化