Каковы ограничения с точки зрения производительности 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
.
Тем не менее, это будет много.