华为云用户手册
-
使用限制 当前版本支持分区级MDL锁功能,包括DROP PARTITION操作、RANGE和LIST分区方式的ADD PARTITION操作。 DROP PARTITION操作和ADD PARTITION操作仅支持inplace算法,不支持copy算法。 由于隔离级别可以设置为会话级别,如果transaction_isolation设置为REPEATABLE-READ或更高的隔离级别,在并发执行DDL过程中,可能会出现如下报错: ERROR HY000: Table definition has changed, please retry transaction。 这是正常现象,因为事务访问到了DDL创建的新分区。可以通过重新执行事务来解决这个问题。
-
语法 创建一个或多个LIST-RANGE分区表,其中每个分区可能有一个或一个以上的子分区。 CREATE TABLE [ schema. ]table_name table_definition PARTITION BY LIST {(expr) | COLUMNS(column_list)} SUBPARTITION BY RANGE {(expr) | COLUMNS(column_list)} (partition_definition [, partition_definition] ...); 其中,partition_definition为: PARTITION partition_name VALUES IN (value_list) (subpartition_definition [, subpartition_definition] ...) subpartition_definition为: SUBPARTITION subpartition_name VALUES LESS THAN {value | value_list | MAXVALUE} 表1 参数说明 参数名称 描述 expr 分区字段表达式。目前只支持INT类型,不支持字符类型。 column_list LIST COLUMNS的情况下使用,分区字段列表,不支持表达式。 value 分区边界值。 value_list LIST COLUMNS的情况下使用,多个字段的边界值。 MAXVALUE 最大值。 partition_name 分区名称,同一个表中不可重复。 subpartition_name 子分区名称, 同一个表中不可重复。
-
性能测试 TaurusDB执行耗时2.7秒完成,只需要扫描约61万行数据。相比MySQL 8.0 社区版本执行耗时约186秒,扫描数据量4400万,执行效率大大提升。 如下示例中,对7个表连接后的结果做DISTINCT,使用MySQL 8.0.30社区版本,执行耗时186秒,扫描了约4400万行数据。 TaurusDB执行耗时2.7秒,扫描约61万行数据。 查询语句: select distinct ed.code,et.*from ele_template etleft join ele_template_tenant ett on ett.template_id = et.idleft join ele_relation tm on tm.tom_id = et.id and tm.jerry_type = 'chapter'left join ele_relation mv on mv.tom_id = tm.jerry_id and mv.jerry_type = 'variable'left join ele_relation cv on cv.jerry_id = mv.jerry_id and cv.tom_type = 'column'left join ele_doc_column edc on edc.id = cv.tom_idleft join ele_doc ed on ed.id = edc.doc_idwhere ett.uctenantid = 'mmo0l3f8'and ed.code = 'contract'and et.billtype = 'contract'order by ifnull(et.utime,et.ctime)desc limit 0,10;
-
使用示例 HASH-LIST类型的使用示例 CREATE TABLE tbl_hash_list( col1 INT, col2 INT, col3 varchar(20), col4 DATE)PARTITION BY HASH(col1)SUBPARTITION BY LIST(col2)( PARTITION dp0 ( SUBPARTITION p0 VALUES in (1, 2), SUBPARTITION p1 VALUES in (3, 4), SUBPARTITION p2 VALUES in (5, 6) ), PARTITION dp1 ( SUBPARTITION p3 VALUES in (1, 2), SUBPARTITION p4 VALUES in (3, 4), SUBPARTITION p5 VALUES in (5, 6) ), PARTITION dp2 ( SUBPARTITION p6 VALUES in (1, 2), SUBPARTITION p7 VALUES in (3, 4), SUBPARTITION p8 VALUES in (5, 6) ));
-
语法 创建一个或多个HASH-LIST分区表,其中每个分区可能有一个或一个以上的子分区。 CREATE TABLE [ schema. ]table_name table_definition PARTITION BY [LINEAR] HASH(expr) SUBPARTITION BY LIST {(expr) | COLUMNS(column_list)} (partition_definition [, partition_definition] ...); 其中,partition_definition为: PARTITION partition_name (subpartition_definition [, subpartition_definition] ...) subpartition_definition为: SUBPARTITION subpartition_name VALUES IN (value_list) 表1 参数说明 参数名称 描述 table_name 要创建的表名称。 expr 分区字段表达式,目前只支持INT类型,不支持字符类型。 column_list LIST COLUMNS的情况下使用,分区字段列表,不支持表达式。 value_list LIST COLUMNS的情况下使用,多个字段的边界值。 partition_name 分区名称,同一个表中不可重复。 subpartition_name 子分区名称,同一个表中不可重复。
-
开启多表连接DISTINCT优化 表1 参数说明 参数名称 级别 描述 rds_nlj_distinct_optimize Global,Session DISTINCT优化特性开关,默认值为OFF。 ON:开启DISTINCT优化特性。 OFF:关闭DISTINCT优化特性。 除了使用上述开关来控制优化特性生效或者不生效,还可以使用HINT来实现,语法如下。 开启DISTINCT优化特性 /*+ SET_VAR(rds_nlj_distinct_optimize=ON) */ 关闭 DISTINCT 优化特性 /*+ SET_VAR(rds_nlj_distinct_optimize=OFF) */
-
使用示例 RANGE-RANGE类型的使用示例 CREATE TABLE tbl_range_range (col1 INT, col2 INT, col3 varchar(20))PARTITION BY RANGE(col1)SUBPARTITION BY RANGE(col2)( PARTITION p0 VALUES LESS THAN (1000) ( SUBPARTITION s0 VALUES LESS THAN(100), SUBPARTITION s1 VALUES LESS THAN(MAXVALUE) ), PARTITION p1 VALUES LESS THAN (2000) ( SUBPARTITION s2 VALUES LESS THAN(100), SUBPARTITION s3 VALUES LESS THAN(200) ), PARTITION p2 VALUES LESS THAN (MAXVALUE) ( SUBPARTITION s4 VALUES LESS THAN(200), SUBPARTITION s5 VALUES LESS THAN(400) )); RANGE COLUMNS-RANGE类型的使用示例 CREATE TABLE tbl_range_col_range (col1 INT, col2 INT, col3 INT)PARTITION BY RANGE COLUMNS(col1, col2)SUBPARTITION BY RANGE(col3)( PARTITION p1 VALUES LESS THAN(1000, MAXVALUE)( SUBPARTITION s0 VALUES LESS THAN(100), SUBPARTITION s1 VALUES LESS THAN(MAXVALUE) ), PARTITION p2 VALUES LESS THAN(2000, MAXVALUE)( SUBPARTITION s2 VALUES LESS THAN(100), SUBPARTITION s3 VALUES LESS THAN(200) ), PARTITION p3 VALUES LESS THAN(MAXVALUE, MAXVALUE)( SUBPARTITION s4 VALUES LESS THAN(200), SUBPARTITION s5 VALUES LESS THAN(400) ));
-
语法 创建一个或多个RANGE-RANGE分区表,其中每个分区可能有一个或一个以上的RANGE类型的子分区。 CREATE TABLE ... PARTITION BY RANGE {(expr) | COLUMNS(column_list)} SUBPARTITION BY RANGE {(expr) | COLUMNS(column_list)}[(partition_definition [, partition_definition] ...)]; 其中,partition_definition为: PARTITION partition_name VALUES LESS THAN {(value | MAXVALUE | value_list) | MAXVALUE}[(subpartition_definition [, subpartition_definition] ...)] subpartition_definition为: SUBPARTITION subpartition_name VALUES LESS THAN {value | value_list | MAXVALUE} 表1 参数说明 参数名称 描述 expr 分区字段表达式。目前只支持INT类型,不支持字符类型。 column_list RANGE COLUMNS的情况下使用。分区字段列表,不支持表达式,可以支持多列。 value 分区边界值。 value_list RANGE COLUMNS的情况下使用,多个字段的边界值。 MAXVALUE 最大值。 partition_name 分区名称,同一个表中不可重复。 subpartition_name 子分区名称, 同一个表中不可重复。
-
创建INTERVAL RANGE分区表 INTERVAL RANGE分区表定义格式类似于RANGE分区表,但多了INTERVAL子句。 语法: CREATE TABLE [IF NOT EXISTS] [schema.]table_nametable_definitionpartition_options; 其中,partition_options为: PARTITION BY RANGE {(expr) | COLUMNS(column_list)} {INTERVAL(value) | INTERVAL(type, expr)} (partition_definition [, partition_definition] ...) partition_definition为: PARTITION partition_name [VALUES LESS THAN {expr | MAXVALUE}] [[STORAGE] ENGINE [=] engine_name] [COMMENT [=] 'string' ] [DATA DIRECTORY [=] 'data_dir'] [INDEX DIRECTORY [=] 'index_dir'] [MAX_ROWS [=] max_number_of_rows] [MIN_ROWS [=] min_number_of_rows] [TABLESPACE [=] tablespace_name] 其中,INTERVAL子句仅支持设置间隔数值(value)和间隔类型(type)。 INTERVAL子句关联参数说明: 表2 参数说明 参数名称 参数说明 INTERVAL(value) 使用RANGE(expr) 或者 RANGE COLUMNS(column_list)且column是整型字段时,INTERVAL子句的格式,其中value代表间隔数值,必须是正整数。 expr RANGE(expr)中的分区表达式,目前只支持整数类型。 column_list RANGE COLUMNS(column_list)的分区字段列表,在INTERVAL RANGE分区表中,column_list只能是单列。 INTERVAL(type, value) 使用RANGE COLUMNS(column_list)且column_list是DATE/TIME/DATETIME类型时,INTERVAL子句的格式,其中type代表间隔类型,value代表间隔数值。 type目前支持8种时间类型(YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE、SECOND)。 value代表间隔数值,必须是正整数;当type为SECOND类型时,间隔不能小于60。 间隔数值(value)和间隔类型(type)的进一步说明:
-
INTERVAL RANGE分区表与任意类型表的相互转换 语法: 其他类型表转化为INTERVAL RANGE分区表。 ALTER TABLE table_name table_definitionpartition_options;partition_options: PARTITION BY { RANGE{(expr) | COLUMNS(column_list)} } { INTERVAL(type, value) | INTERVAL(value) } [(partition_definition [, partition_definition] ...)]partition_definition: PARTITION partition_name [VALUES LESS THAN {expr | MAXVALUE}] [[STORAGE] ENGINE [=] engine_name] [COMMENT [=] 'string' ] [DATA DIRECTORY [=] 'data_dir'] [INDEX DIRECTORY [=] 'index_dir'] [MAX_ROWS [=] max_number_of_rows] [MIN_ROWS [=] min_number_of_rows] [TABLESPACE [=] tablespace_name] INTERVAL子句关联参数说明: 表3 参数说明 参数名称 参数说明 INTERVAL(value) 使用RANGE(expr) 或者 RANGE COLUMNS(column_list)且column是整型字段时,INTERVAL子句的格式,其中value代表间隔数值,必须是正整数。 expr RANGE(expr)中的分区表达式,目前只支持整数类型。 column_list RANGE COLUMNS(column_list)的分区字段列表,在INTERVAL RANGE分区表中,column_list只能是单列。 INTERVAL(type, value) 使用RANGE COLUMNS(column_list)且column_list是DATE/TIME/DATETIME类型时,INTERVAL子句的格式,其中type代表间隔类型,value代表间隔数值。 type目前支持8种时间类型(YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE、SECOND)。 value代表间隔数值,必须是正整数;当type为SECOND类型时,间隔不能小于60。 INTERVAL RANGE分区表转化为其他任意类型的表,这里partition_options是可选的。 ALTER TABLE table_name table_definition[partition_options]; 示例: 将其他类型表转为INTERVAL RANGE表: CREATE TABLE orders( orderkey BIGINT NOT NULL, custkey BIGINT NOT NULL, orderdate DATE NOT NULL);ALTER TABLE ordersPARTITION BY RANGE COLUMNS(orderdate) INTERVAL(MONTH, 1) ( PARTITION p0 VALUES LESS THAN('2021-10-01')); 将INTERVAL RANGE表转化为其他类型表: CREATE TABLE orders (a INT, b DATETIME)PARTITION BY RANGE (a) INTERVAL(10)( PARTITION p0 VALUES LESS THAN(10), PARTITION p2 VALUES LESS THAN(20));ALTER TABLE orders PARTITION BY LIST COLUMNS (a)( PARTITION p0 VALUES IN (1, 11, 25)); 修改INTERVAL RANGE表的INTERVAL子句信息: CREATE TABLE orders (a INT, b DATETIME)PARTITION BY RANGE (a) INTERVAL(10)( PARTITION p0 VALUES LESS THAN(10), PARTITION p2 VALUES LESS THAN(20));ALTER TABLE orders PARTITION BY RANGE (a) INTERVAL(20)( PARTITION p0 VALUES LESS THAN(10), PARTITION p2 VALUES LESS THAN(20));# 消除INTERVAL子句ALTER TABLE orders PARTITION BY RANGE (a)( PARTITION p0 VALUES LESS THAN(10), PARTITION p2 VALUES LESS THAN(20));# 添加INTERVAL子句ALTER TABLE orders PARTITION BY RANGE (a) INTERVAL(100)( PARTITION p0 VALUES LESS THAN(10), PARTITION p2 VALUES LESS THAN(20));
-
使用限制 INTERVAL RANGE表只支持HASH/KEY二级分区。 采取RANGE COLUMNS(column_list) INTERVAL([type], value)形式描述INTERVAL RANGE规则时: column_list(分区键)中列个数只能为1,并且只能是是整数类型或者DATE/TIME/DATETIME类型。 如果分区键是整型,INTERVAL的间隔类型type不需要填写。 如果分区键为DATE类型,INTERVAL的间隔类型type只能取YEAR、QUARTER、MONTH、WEEK、DAY。 如果分区键为TIME类型,INTERVAL的间隔类型type只能取HOUR、MINUTE、SECOND。 如果分区间为DATETIME类型,INTERVAL的间隔类型type可以取YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE、SECOND。 间隔值value只能为正整数。 如果INTERVAL的间隔类型是SECOND,间隔不能小于60。 采取RANGE(expr) INTERVAL(value)形式描述INTERVAL RANGE规则时,expr表达式的结果应为整数,间隔值value只能为正整数。 不支持使用INSERT ...SELECT语句、INSERT ...ON DUPLICATE KEY UPDATE语句、UPDATE语句触发分区新增。 LOAD DATA时不会触发分区自增(如果分区覆盖了所有插入数据的范围,能使用load data导入数据,如果分区没有覆盖插入数据的范围,load data无法触发自增分区,导入数据失败)。 事务中如果触发分区自增,一旦新分区创建成功,不支持回滚。 自增的分区使用'_p'作为分区名的前缀,因此客户设置的以此开头的分区名可能导致分区自增失败。 SET INTERVAL([type], value)子句只适用于INTERVAL RANGE表和RANGE表,如果这两种表有二级分区,只支持二级分区为HASH或KEY类型。 SET INTERVAL([type], value)子句的type和value取值要受原表的分区表达式expr或分区键column_list的约束。
-
SET INTERVAL子句支持 支持使用SET INTERVAL子句修改INTERVAL RANGE表定义的INTERVAL子句间隔类型和间隔值,也可实现消除或添加INTERVAL子句。 语法: ALTER TABLE table_name SET INTERVAL {() | (type, value) | (value)}; 表4 参数说明 参数名称 参数说明 type 目前支持8种时间类型(YEAR、QUARTER、MONTH、WEEK、DAY、HOUR、MINUTE、SECOND),不显式指定默认是数字类型的间隔。 value 指定间隔的数值大小。当type为SECOND类型时,间隔不能小于60。 示例: 修改INTERVAL RANGE表的INTERVAL类型和值。 CREATE TABLE orders( orderkey BIGINT NOT NULL, custkey BIGINT NOT NULL, orderdate DATE NOT NULL)PARTITION BY RANGE COLUMNS(orderdate) INTERVAL(MONTH, 1) ( PARTITION p0 VALUES LESS THAN('2021-10-01'));ALTER TABLE orders SET INTERVAL(YEAR, 1); 实现RANGE表和INTERVAL RANGE表之间的转化。 CREATE TABLE orders( orderkey BIGINT NOT NULL, custkey BIGINT NOT NULL, orderdate DATE NOT NULL)PARTITION BY RANGE COLUMNS(orderdate) INTERVAL(MONTH, 1) ( PARTITION p0 VALUES LESS THAN('2021-10-01'));# 删除INTERVAL子句ALTER TABLE sales SET INTERVAL();# 添加INTERVAL子句ALTER TABLE sales SET INTERVAL(DAY, 60); 即使当前功能开关rds_interval_range_enabled关闭,"ALTER TABLE table_name SET INTERVAL()"语句也可使用(用于消除INTERVAL RANGE表的INTERVAL子句定义信息,转化为普通RANGE表)。
-
工作原理 云数据库TaurusDB采用计算与存储分离的架构,以减少网络流量为主要架构准则,通过NDP设计将该准则应用到查询操作。没有NDP之前,查询处理需要将原始数据从存储节点全部传输到计算节点。通过NDP设计,查询中的I/O密集型和CPU密集型的大部分工作被下推到存储节点完成,仅将所需列及筛选后的行或聚合后的结果值回传给计算节点,使网络流量大幅减少。同时跨存储节点并行处理,使计算节点CPU使用率下降,提升了查询效率性能。 另外,NDP框架同TaurusDB并行查询进行融合,并进行了页面批量预取的设计,达成执行全流程并行,进一步提升查询执行效率。
-
参数说明 表1 参数说明 参数名 级别 描述 ndp_mode Global、Session NDP特性开关,OFF表示特性关闭,ON表示特性在主机和只读节点开启,REPLICA_ON表示特性只在只读节点开启。 取值范围:OFF/ON/REPLICA_ON 默认取值:OFF ndp_support_features Global、Session NDP支持的特性 COUNT,是否将COUNT聚合运算通过NDP下推至存储计算 MIN,是否将MIN聚合运算通过NDP下推至存储计算 MAX,是否将MAX聚合运算通过NDP下推至存储计算 AVG,是否将AVG聚合运算通过NDP下推至存储计算 SUM,是否将SUM聚合运算通过NDP下推至存储计算 GROUP_BY,是否将GROUP BY分组相关聚合运算通过NDP下推至存储计算 Partition_Table,针对分区表,NDP下推是否生效 Instant_Column_Table,针对快速加列的表,NDP是否生效 Bloom_filter,针对Hash Join,是否将Hash Table通过NDP下推至存储提前过滤 取值范围:COUNT,MIN,MAX,AVG,SUM,GROUP_BY,Partition_Table,Instant_Column_Table,Bloom_filter 默认取值:COUNT,SUM
-
功能介绍 TaurusDB分区表完全兼容社区MySQL的语法和功能。同时,TaurusDB分区表相对于社区MySQL进行了功能增强,支持丰富的分区表类型及组合,使您可以更加便携、简单和高效的使用分区表。 TaurusDB兼容的社区MySQL分区表类型如下: HASH KEY RANGE LIST RANGE-HASH RANGE-KEY LIST-HASH LIST-KEY 组合分区由一级分区(主分区)和二级分区(子分区)组成。 TaurusDB组合分区功能支持的分区表类型如下: RANGE-RANGE RANGE-LIST LIST-RANGE LIST-LIST HASH-HASH HASH-KEY HASH-RANGE HASH-LIST KEY-KEY KEY-HASH KEY-RANGE KEY-LIST 父主题: 二级分区
-
更改样式 支持在settings.json文件里自定义Terminal的样式,如:字体大小、行间距等。可参考以下参数项进行配置: terminal.integrated.fontFamily terminal.integrated.fontSize terminal.integrated.fontWeight terminal.integrated.fontWeightBold terminal.integrated.letterSpacing terminal.integrated.lineHeight
-
语法 创建一个或多个KEY-LIST分区表,其中每个分区可能有一个或一个以上的子分区。 CREATE TABLE [ schema. ]table_name table_definition PARTITION BY [LINEAR] KEY(expr) SUBPARTITION BY LIST {(expr) | COLUMNS(column_list)} (partition_definition [, partition_definition] ...); 其中,partition_definition为: PARTITION partition_name (subpartition_definition [, subpartition_definition] ...) subpartition_definition为: SUBPARTITION subpartition_name VALUES IN (value_list) 表1 参数说明 参数名称 描述 table_name 要创建的表名称。 expr 分区字段表达式,目前只支持INT类型,不支持字符类型。 column_list LIST COLUMNS的情况下使用,分区字段列表,不支持表达式。 value_list 字段的值。 partition_name 分区名称,同一个表中不可重复。 subpartition_name 子分区名称,同一个表中不可重复。
-
使用示例 KEY-LIST类型的使用示例 CREATE TABLE tbl_key_list( col1 INT, col2 INT, col3 varchar(20), col4 DATE)PARTITION BY KEY(col1)SUBPARTITION BY LIST(col2)( PARTITION dp0 ( SUBPARTITION p0 VALUES in (1, 2), SUBPARTITION p1 VALUES in (3, 4), SUBPARTITION p2 VALUES in (5, 6) ), PARTITION dp1 ( SUBPARTITION p3 VALUES in (1, 2), SUBPARTITION p4 VALUES in (3, 4), SUBPARTITION p5 VALUES in (5, 6) ), PARTITION dp2 ( SUBPARTITION p6 VALUES in (1, 2), SUBPARTITION p7 VALUES in (3, 4), SUBPARTITION p8 VALUES in (5, 6) ));
-
使用示例 RANGE-LIST类型的使用示例 CREATE TABLE tbl_range_list (col1 INT, col2 INT, col3 varchar(20))PARTITION BY RANGE(col1) SUBPARTITION BY LIST(col2)( PARTITION m1 VALUES LESS THAN(1000) ( SUBPARTITION p0 VALUES in (1, 2),SUBPARTITION p1 VALUES in (3, 4),SUBPARTITION p2 VALUES in (5, 6) ), PARTITION m2 VALUES LESS THAN(2000) ( SUBPARTITION p3 VALUES in (1, 2),SUBPARTITION p4 VALUES in (3, 4),SUBPARTITION p5 VALUES in (5, 6) ), PARTITION m3 VALUES LESS THAN(MAXVALUE) ( SUBPARTITION p6 VALUES in (1, 2),SUBPARTITION p7 VALUES in (3, 4),SUBPARTITION p8 VALUES in (5, 6) )); RANGE COLUMNS-LIST类型的使用示例 CREATE TABLE tbl_range_columns_list( col1 INT, col2 INT, col3 varchar(20), col4 DATE)PARTITION BY RANGE COLUMNS(col4)SUBPARTITION BY LIST(col1)( PARTITION dp1 VALUES LESS THAN('2023-01-01')( SUBPARTITION p0 VALUES in (1, 2), SUBPARTITION p1 VALUES in (3, 4), SUBPARTITION p2 VALUES in (5, 6) ), PARTITION dp2 VALUES LESS THAN('2024-01-01')( SUBPARTITION p3 VALUES in (1, 2), SUBPARTITION p4 VALUES in (3, 4), SUBPARTITION p5 VALUES in (5, 6) ), PARTITION dp3 VALUES LESS THAN('2025-01-01')( SUBPARTITION p6 VALUES in (1, 2), SUBPARTITION p7 VALUES in (3, 4), SUBPARTITION p8 VALUES in (5, 6) ));
-
语法 创建一个或多个HASH-KEY分区表,其中每个分区可能有一个或一个以上的子分区。 CREATE TABLE [ schema. ]table_name table_definition PARTITION BY [LINEAR] HASH(expr) [PARTITIONS num] SUBPARTITION BY [LINEAR] KEY(expr) [SUBPARTITIONS sub_num] (partition_definition [, partition_definition] ...); 其中,partition_definition为: PARTITION partition_name (subpartition_definition [, subpartition_definition] ...) subpartition_definition为: SUBPARTITION subpartition_name 表1 参数说明 参数名称 描述 table_name 要创建的表名称。 expr 分区字段表达式,目前只支持INT类型,不支持字符类型。 partition_name 分区名称,同一个表中不可重复。 subpartition_name 子分区名称,同一个表中不可重复。
-
语法 创建一个或多个RANGE-LIST分区表,其中每个分区可能有一个或一个以上的子分区。 CREATE TABLE ... PARTITION BY RANGE {(expr) | COLUMNS(column_list)} SUBPARTITION BY LIST {(expr) | COLUMNS(column_list)}[(partition_definition [, partition_definition] ...)]; 其中,partition_definition为: PARTITION partition_name VALUES LESS THAN {(value | value_list) | MAXVALUE}[(subpartition_definition [, subpartition_definition] ...)] subpartition_definition为: SUBPARTITION subpartition_name VALUES IN {(value | value_list)} 表1 参数说明 参数名称 描述 expr 分区字段表达式。目前只支持INT类型,不支持字符类型。 column_list RANGE COLUMNS的情况下使用。分区字段列表,不支持表达式,可以支持多列。 value 分区边界值。 value_list RANGE COLUMNS的情况下使用,多个字段的边界值。 MAXVALUE 最大值。 partition_name 分区名称,同一个表中不可重复。 subpartition_name 子分区名称, 同一个表中不可重复。
-
语法 扩展column_definition定义,支持在CREATE TABLE/ALTER TABLE ADD/ALTER TABLE CHANGE/ALTER TABLE MODIFY场景定义列属性时使用压缩特性。 create_definition: { col_name column_definition | {INDEX | KEY} [index_name] [index_type] (key_part,...) [index_option] ... | {FULLTEXT | SPATIAL} [INDEX | KEY] [index_name] (key_part,...) [index_option] ... | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (key_part,...) [index_option] ... | [CONSTRAINT [symbol]] UNIQUE [INDEX | KEY] [index_name] [index_type] (key_part,...) [index_option] ... | [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (col_name,...) reference_definition | check_constraint_definition}alter_option: { table_options | ADD [COLUMN] col_name column_definition [FIRST | AFTER col_name] | ADD [COLUMN] (col_name column_definition,...) | CHANGE [COLUMN] old_col_name new_col_name column_definition [FIRST | AFTER col_name] | MODIFY [COLUMN] col_name column_definition [FIRST | AFTER col_name] ... 其中column_definition为: column_definition: { data_type [NOT NULL | NULL] [DEFAULT {literal | (expr)} ] [VISIBLE | INVISIBLE] [AUTO_INCREMENT] [UNIQUE [KEY]] [[PRIMARY] KEY] [COMMENT 'string'] [COLLATE collation_name] [COLUMN_FORMAT {FIXED | DYNAMIC | DEFAULT}] [COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}|COMPRESSED[={ZLIB|ZSTD}**]] [ENGINE_ATTRIBUTE [=] 'string'] [SECONDARY_ENGINE_ATTRIBUTE [=] 'string'] [STORAGE {DISK | MEMORY}] [reference_definition] [check_constraint_definition] | data_type [COLLATE collation_name] [GENERATED ALWAYS] AS (expr) [VIRTUAL | STORED] [NOT NULL | NULL] [VISIBLE | INVISIBLE] [UNIQUE [KEY]] [[PRIMARY] KEY] [COMMENT 'string'] [reference_definition] [check_constraint_definition]}
-
特性参数说明 表1 参数说明 参数名称 描述 取值范围 默认值 级别 是否动态生效 rds_column_compression 当参数取值为0时,表示字段压缩特性关闭,不再支持显式或者自动创建压缩列。 当参数取值为1时,表示仅支持显式创建压缩列。 当参数取值为2时,表示同时支持显式或自动创建压缩列。 [0,2] 0 GLOBAL 是 rds_default_column_compression_algorithm 设置字段压缩特性默认的压缩算法,适用于如下场景: 显式创建压缩字段而不指定具体的压缩算法。 自动压缩场景。 ZLIB或ZSTD ZLIB GLOBAL 是 rds_column_compression_threshold 设置字段压缩特性的阈值。 当列定义最大长度小于此阈值时,可以显式创建压缩列,但会收到提示信息,不能自动地创建压缩列。 当列定义最大长度大于等于此阈值时,支持显式或者自动创建压缩列。 [20-4294967295] 100 GLOBAL 是 rds_zlib_column_compression_level 控制字段压缩特性中zlib压缩算法的压缩级别。 当参数取值为0时代表不压缩。 取值为除0外范围内的其他参数值时,取值越小,压缩速度越快但压缩效果越差;取值越大,压缩速度越慢但压缩效果越好。 [0,9] 6 GLOBAL 是 rds_zstd_column_compression_level 控制字段压缩特性中zstd压缩算法的压缩级别。 取值越小,压缩速度越快但压缩效果越差;取值越大,压缩速度越慢但压缩效果越好。 [1,22] 3 GLOBAL 是
-
使用须知 TaurusDB实例内核版本大于等于2.0.54.240600可使用该功能。 不支持分区表、临时表、非InnoDB引擎表。 压缩字段上不能包含索引(主键、唯一索引、二级索引、外键、全文索引)。 仅支持的数据类型:BLOB(包含TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB),TEXT(包含TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT),VARCHAR,VARBINARY。 不支持在生成列上使用此特性。 不支持在分区表和带有压缩字段的表之间执行EXCHANGE PARTITION式语句。 不支持IMPORT TABLESPACE。 仅支持在CREATE TABLE/ALTER TABLE ADD/ALTER TABLE CHANGE/ALTER TABLE MODIFY场景使用此特性。 ALTER TABLE ADD COLUMN不支持INSTANT算法,ALTER TABLE {CHANGE|MODIFY} 语法涉及数据变化时不支持使用INSTANT算法。 自动压缩场景(rds_column_compression=2),定义字段的最大长度需大于等于字段压缩阈值(rds_column_compression_threshold)时才可以被添加压缩属性;显式压缩场景(rds_column_compression=1),若定义压缩字段的最大长度小于字段压缩阈值,字段仍可被添加压缩属性,同时收到warning信息。 若当前表中包含压缩字段,暂不支持NDP计算下推。 客户手动拉取BIN LOG 同步过程中ALTER语句会出现不兼容的问题,推荐客户侧使用HINT的方式来解决。 利用DRS迁移至无该特性的实例,压缩属性被消除。全量迁移任务可以进行,增量迁移时ALTER语句中存在压缩字段会导致迁移任务失败。 物理备份方面,利用备份去做数据恢复的版本也必须是带有字段压缩特性的。 升级至新版本之后,如果已经使用字段压缩功能,不支持回退至无该特性的版本。
-
性能测试 测试环境 实例规格:8U32GB、32U128GB E CS 规格:32U64GB 测试环境:华北-北京四 测试工具:sysbench-1.0.18 数据模型: 1张表,1条数据。 8张表,每张表1条数据。 参数配置 rds_hotspot=ON transaction_isolation=READ-COMMITTED max_prepared_stmt_count=1048576 rds_global_sql_log_bin=OFF 测试方法 测试所需数据表定义: CREATE TABLE sbtest (id int NOT NULL AUTO_INCREMENT,k int NOT NULL DEFAULT '0',PRIMARY KEY (id)); 测试语句: UPDATE sbtest%u SET k=k+1 WHERE id=1 hotspot; 测试场景和测试结果 测试场景1:8U32GB实例单个热点行更新 测试结果:所有并发均有不同程度提升,64并发及以下并发提升不明显,128并发及以上并发提升明显,最高提升9.26倍。 测试场景2:32U128GB实例单个热点行更新 测试结果:128并发及以上并发提升明显,最高提升639倍。 测试场景3:32U 128GB实例8个热点行更新 测试结果:256及以下并发无提升,512及以上并发提升效果明显,最高提升78倍。
-
使用示例 创建表,准备数据。 CREATE TABLE test.hotspot1 ( `id` int NOT NULL primary key, `c` int NOT NULL DEFAULT '0') ENGINE=InnoDB;INSERT INTO test.hotspot1 VALUES (1, 1); 打开热点行更新开关。 SET GLOBAL rds_hotspot = ON; 修改隔离级别,AUTOCOMMIT。 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;SET SESSION AUTOCOMMIT = ON; 发起带HOTSPOT关键字的更新。 UPDATE test.hotspot1 SET c=c+1 WHERE id=1 HOTSPOT; 检查热点行更新状态。 SHOW STATUS like "%hotspot%";
-
新增关键字 新增标记语句的关键字如下: 表3 新增关键字 关键字 描述 HOTSPOT 表示开启热点更新功能。 NOT_MORE_THAN 可选项。表示目标值不大于某值。 NOT_LESS_THAN 可选项。表示目标值不小于某值。 上述关键字放置在SQL语句末尾。HOTSPOT必须在最前面,NOT_MORE_THAN和NOT_LESS_THAN没有位置前后的要求。 例如:假设id是主键列,c是int类型列,那么支持以下语法: UPDATE c=c+1 where id=10 HOTSPOT;UPDATE c=c+1 where id=10 HOTSPOT NOT_MORE_THAN 100; // c值不大于100UPDATE c=c-1 where id=10 HOTSPOT NOT_LESS_THAN 0; // c值不小于0UPDATE c=c+1 where id=10 HOTSPOT NOT_MORE_THAN 100 NOT_LESS_THAN 0; // c值不大于100,不小于0UPDATE c=c+1 where id=10 HOTSPOT NOT_LESS_THAN 0 NOT_MORE_THAN 100; // c值不大于100,不小于0 当超过NOT_MORE_THAN或者NOT_LESS_THAN的限制时,会向客户端报如下错误: HOTSPOT field value exceeds limit
-
状态说明 表2 状态说明 状态 说明 Hotspot_total_trx 使用hotspot总事务数 Hotspot_update_errors 更新阶段出错的热点行更新事务,这些出错的事务只会自己更新失败,不会影响其他热点行更新事务的提交。 Hotspot_trx_rollbacked 更新成功,但是由于最终回滚的热点行更新事务数量。当队长(leader)决定回滚时,所有组员(follower)跟着一起回滚。 Hotspot_trx_committed 提交成功的热点行更新事务数量。 Hotspot_batch_size 热点行更新事务分批次提交。该值表示当前批次热点行更新事务的数量。 Hotspot_batch_wait_time 热点行更新按批次持有锁和提交事务。此时间为当前热点行更新批次等待上一批次释放锁的时间,单位微秒。 Hotspot_leader_wait_follower_time 在一个批次中leader需要等待follower完成记录更新,此时间为当前批次leader等待follower的时间,单位微秒。 Hotspot_leader_total_time 当前批次leader的热点行更新事务总时间,单位微秒。 Hotspot_follower_total_time 当前批次某一个follower的热点行更新事务总时间,单位微秒。 Hotspot_follower_wait_commit_time 在一个批次中follower需要等待leader持久化日志,此时间为当前批次某一个follower等待leader持久化日志的时间,单位微秒。 Hotspot_group_counts 每个热点行更新对应一个组,组内事务分批次提交。该值为使用热点行更新的组数。 Hotspot_counter_counts counter用于自动判断热点行更新。当counter中的统计值满足要求时,将会创建group使用热点行更新。该值为counter的总数。
-
约束与限制 TaurusDB实例的内核版本为2.0.54.240600及以上时支持使用该功能。 功能使用约束如下: where条件中只能使用主键或唯一索引的等值匹配,并且只能更新单条记录。否则将绕过优化正常更新。 不允许修改索引列,否则将绕过优化正常更新。 只对修改列为整数的更新生效,否则将绕过优化正常更新。 只允许对热点行记录进行两个元素的加减操作,且第一个元素与等号左侧相等并满足唯一索引等约束,不允许赋值操作。假设c列为待修改列,d为记录的普通列,那么只允许进行类似c=c+1,或者c=c-1的操作,不允许进行c=d+1,c=1+c,c=c+1+1,c=1+c+1等操作。否则将绕过优化正常更新。 只允许对隐式事务生效。即要求AUTOCOMMIT为ON,并且不在BEGIN,COMMIT显示开启的事务中使用。否则将绕过优化正常更新。 需要使用HOTSPOT显式标记热点行更新事务,或者将rds_hotspot_auto_detection_threshold设置为非0,开启热点行更新自动识别功能。否则将绕过优化正常更新。rds_hotspot_auto_detection_threshold的详细用法请见参数说明。 只对RC级别生效。数据库处于其他隔离级别时将绕过优化正常更新。 无法在stored function, trigger以及event中使用,否则将对客户端报如下错误: HOTSPOT hints can not be used in stored function, trigger or event 行为变更: 一个hotspot事务组内,除了执行失败或者在更新阶段killed的事务外,其他事务被按批次集中提交,集中记录redo log和undo log,只能集中提交或者回滚,无法单独回滚。每个批次提交的事务个数为几十到几百个不等。
-
参数说明 表1 参数说明 参数名称 参数说明 rds_hotspot 热点行更新优化开关。将其设置为ON将启用热点行更新优化。 rds_hotspot_follower_wait_commit_interval 热点行更新follower事务等待leader事务日志持久化时,进入阻塞前的睡眠时间。单位:微秒。对日志持久化速度慢的实例,建议调大。对于持久化快速的实例,建议设置为0,不休眠直接阻塞。 rds_hotspot_leader_wait_follower_interval 热点行更新leader事务等待follower更新记录的时间单位。单位:微秒。低并发适当调低可以避免性能下降。高并发适当调高可以提升性能。当QPS超过20w时,建议将该值设置为100或者更大。 rds_hotspot_auto_detection_threshold 热点行更新的自动识别功能开关。设置为0表示不启用自动识别功能。设置为非0表示热点行更新的识别阈值。当某个符合热点行要求的行每秒更新次数超过阈值时将启动热点行更新功能。 rds_hotspot_batch_size_lower_limit 每批热点事务大小的建议最小值。每个batch尽可能达到该大小。但是,这并不是严格保证的。当leader发现所有需要等待的follower都已经到达时,batch就进入提交状态。 rds_hotspot_max_memory_size 热点行更新中group和counter占用的内存上限。当group占用的内存超过限制时,将清空group所占用的内存。当counter占用的内存超过限制时,将清空counter所占用的内存。申请新的内存时才会尝试清空旧内存。 rds_hotspot_enable_time_statistics 是否开启热点行更新的时间相关的状态统计功能。将其设置为ON以启用该功能。
共99354条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- ...
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3311
推荐文章