我有一个非常大的表(数百万条记录),其中包含大约 8 个字段作为主键。为简单起见,可以说该表如下所示:
key_1 | key_2 | key_3 | ... | key_8 | value
给定 key_1 的值,我需要获取 key_2、key_3、...、key_8 的所有可能值,如下所示:
SELECT DISTINCT key_2 FROM table1 WHERE key_1 = 123;
SELECT DISTINCT key_3 FROM table1 WHERE key_1 = 123;
...
SELECT DISTINCT key_8 FROM table1 WHERE key_1 = 123;
我的问题是这个查询比我的性能需要慢得多,而且这个表中的数据相当稳定,很少更新(每隔几天一次)。table_1 也可能是一个缓慢的子查询。除了在数据库中创建一个额外的表并在每次更新数据库时手动更新它,还有另一种解决方案可以给我快速的结果。我需要它跨多个 MySQL 会话工作。