针对 MySQL 分表查询数据有两种方式:1. UNION ALL 联合查询,将不同分表中的数据合并为一张表;2. HASH 分片查询,通过包含分片键直接访问所需的分区,避免扫描所有分区。
MySQL 分表查询方法
如何查询分表?
对于 MySQL 分表,可以通过以下两种方式查询数据:
1. UNION ALL 联合查询
UNION ALL 操作符可将多个查询结果合并为一个表,即使分表存储在不同的数据库中:
SELECT * FROM table1 UNION ALL SELECT * FROM table2;
2. HASH 分片查询
此方法需要修改查询语句以包含分片键,从而仅访问包含所需数据的特定分区:
SELECT * FROM table WHERE MOD(id, num_of_partitions) = partition_id;
详细说明:
UNION ALL 联合查询
HASH 分片查询
示例:
假设将表 users 分为两个分区,分区键为 user_id:
SELECT * FROM users_partition1 UNION ALL SELECT * FROM users_partition2;
SELECT* FROM users WHERE MOD(user_id, 2) = 0;
此查询将仅从 users_partition1 分区检索数据,因为 user_id 的奇偶校验为 0。