У меня есть таблица MySQL около 1000 миллионов записей. Я делаю запрос очень медленно. Итак, я разделил эту таблицу по ID на 10 подтабликов с тем же structrue.как быстро запрашивать данные после разделения таблицы?
table_1(1-1000000)
table_2(10000001-2000000)
table_3(20000001-3000000)
......
Но как я могу быстро запрашивать данные после разбиения таблицы?
, когда я обращаюсь к пользователю следующим образом: select name from table where name='mark'
, я не знаю, перейдите в какую таблицу для запроса beacuse. Я могу получить диапазон идентификаторов.
путем проверки диапазона. Вы уже пробовали индексы? –
попробуйте Разделение (http://dev.mysql.com/doc/refman/5.1/en/partitioning.html), он делает все. Для того, что вы сделали, вы сначала должны проверить, какую таблицу вам нужно запросить, в зависимости от идентификатора, а затем запустить запрос в этой таблице. Кстати, как предложил «Митч Пшеница», вы пробовали индексы на своем оригинальном столе с 1000 миллионами записей? – Abhay
@Abhay записи увеличивается с каждым днем, поэтому хранить все записи в одной таблице не полезно. Задайте запрос следующим образом: «выберите имя из таблицы, где name =« mark », я не знаю, перейдите в какую таблицу для запроса beacuse. Я могу получить диапазон ID. – koogua