AUTO_RANDOM能否在线调整bits大小

目前解决热点问题可以使用SHARD_ROW_ID_BITS和AUTO_RANDOM
SHARD_ROW_ID_BITS可以动态调整bits大小
AUTO_RANDOM可以动态调整bits大小吗
比如刚开始设置的AUTO_RANDOM(3),后来发现不够,能不能在线动态改成AUTO_RANDOM(5)

  • SHARD_ROW_ID_BITS 测试
mysql> CREATE TABLE t (c int) SHARD_ROW_ID_BITS = 4;
Query OK, 0 rows affected (0.12 sec)

mysql> insert into t values(1),(2),(3);
Query OK, 3 rows affected (0.05 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> ALTER TABLE t SHARD_ROW_ID_BITS = 5;
Query OK, 0 rows affected (0.12 sec)

mysql> show create table t;
+-------+------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                             |
+-------+------------------------------------------------------------------------------------------------------------------------------------------+
| t     | CREATE TABLE `t` (
  `c` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin/*!90000 SHARD_ROW_ID_BITS=5 */ |
+-------+------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.04 sec)

AUTO_RANDOM 不支持修改

shard_row_id_bits 可以修改,但是不建议修改,修改之后,可能会导致生成之前已经使用过的 ID 。

感谢回答,如果可以修改的话,根据shard_row_id_bits的实现原理,id要突破高位应该也是需要很大数据量的

嗯,是的