Ограничения на количество строк в MySQL - PullRequest
0 голосов
/ 27 марта 2012

Каковы ограничения с точки зрения производительности MySQL, когда речь идет о количестве строк в таблице? В настоящее время у меня есть работающий проект, который запускает cronjobs каждый час. Они собирают данные и записывают их в базу данных.

Чтобы повысить производительность, я думаю о сохранении данных этих cronjobs в таблице. (Не только результат, но и все остальное). Сами данные будут чем-то похожим на это;

imgId (INT,FKEY->images.id) | imgId (INT,FKEY->images.id) | myData(INT)

Итак, фактические данные на строку довольно малы. Проблема в том, что количество строк в этой таблице будет расти в геометрической прогрессии. С каждым добавленным изображением мне нужно myData для каждого другого изображения. Это означает, что с 3000 изображений у меня будет 3000 ^ 2 = 9 миллионов строк (не считая диагоналей, потому что мне сейчас лень это делать).

Я размышляю о том, что MySQL может справиться с такими предварительными условиями Каждый час добавляется примерно 100-300 новых записей в исходную таблицу, что означает от 10 000 до 90 000 новых записей в кросс-таблице.

Возникает несколько вопросов:

  • Существуют ли ограничения на количество строк в таблице?
  • Когда (если) MySQL значительно снизит производительность?
  • Какие действия я могу предпринять, чтобы сделать эту кросс-таблицу максимально быстрой (доступной, запись не должна быть быстрой) насколько это возможно?

EDIT

Я только что закончил с помощью полиномиальной интерполяции, и оказалось, что рост не будет таким резким, как я первоначально думал. Поскольку отношение 1-2 имеет те же данные, что и 2-1, мне нужна только «половина» таблицы, в результате чего рост снизится до (x^2-x)/2.

Тем не менее, это будет много.

1 Ответ

0 голосов
/ 27 марта 2012

9 миллионов строк не огромная таблица.Учитывая предоставленную вами структуру, пока она правильно проиндексирована, производительность запросов select / update / insert не будет проблемой.DDL может быть немного медленным.

Поскольку все строки уже описаны декартовым объединением, вам не нужно заполнять всю таблицу.

Если порядок пар изображенийНе важно, что вы можете сэкономить место, отсортировав атрибуты или используя схему из двух / трех таблиц, где imgIds эквивалентны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...