- TiDB事务采取乐观锁
故记住对于冲突多的场景,慎用TiDB;同时由于事务是分布式提交的原因,TiDB事务有大小限制,要注意事务大小; - TiDB 索引越多,写入越慢,并且空间占用越大
- TiDB不支持多列进行分区
好的,以下是一些示例代码和图表来说明TiDB的特点和对比:
- 乐观锁示例代码:
-- 开启事务
START TRANSACTION;
-- 查询数据
SELECT * FROM table WHERE id = 1;
-- 修改数据
UPDATE table SET value = 2 WHERE id = 1;
-- 提交事务
COMMIT;
在上面的示例代码中,TiDB使用乐观锁来实现事务。在修改数据时,TiDB会先检查数据是否被其他事务修改过,如果没有被修改过,则直接提交事务。如果数据被修改过,则会回滚事务并重试。
- 分区示例代码:
-- 创建分区表
CREATE TABLE table (
id INT,
value INT,
PRIMARY KEY (id)
) PARTITION BY RANGE (id) (
PARTITION p0 VALUES LESS THAN (100),
PARTITION p1 VALUES LESS THAN (200),
PARTITION p2 VALUES LESS THAN (MAXVALUE)
);
在上面的示例代码中,TiDB使用id列来进行分区。数据会根据id的值被分配到不同的分区中。TiDB不支持多列进行分区,因此只能使用单列进行分区。