У нас есть таблица MySQL (table_ha), как этот:разделов таблицы в MySQL
Name = table_ha
+----------+------------------+
| hash_loc | hash_val |
+----------+------------------+
| 242342 | 9606075000001005 |
+----------+------------------+
| 431231 | 9606075000005208 |
+----------+------------------+
| 342344 | 7645345456745536 |
+----------+------------------+
| 324254 | 7656453453465788 |
+----------+------------------+
| 656456 | 9788674534546766 |
+----------+------------------+
| 674453 | 3458752778456834 |
+----------+------------------+
| ... | ... |
+----------+------------------+
| 765874 | 8796634586346785 |
+----------+------------------+
| 864534 | 9834667054534588 |
+----------+------------------+
Мы постоянно выполнять запросы, как следующий:
SELECT * FROM table_ha (SELECT 1 AS hash_loc UNION ALL SELECT 28700 UNION ALL SELECT 28728 ... UNION ALL SELECT 28680 UNION ALL SELECT 28694) AS T1 ON table_ha.hash_loc = T1.hash_loc'
Мы должны предположить, что мы могли бы иметь тысячи номеров в запросе (прилагается в UNION ALL SELECT X
). Когда количество строк в таблице_ха не велико, оно работает нормально. Теперь представьте, что у вас тысячи миллионов строк. Затем он становится очень медленным.
Вы знаете, может ли разбиение на разделы работать в таком случае? Как это можно применить к настоящей таблице? Теперь у вас есть другая альтернатива этому?
Примечание: hashloc является BigInt (32) и hash_val является BigInt (64)
Вы отметили свой вопрос с помощью [tag: redis]. Что это связано с Редисом? –
Это правда. Удалены. Спасибо. – juanba1984