Влияет ли запись в MySQL на размер таблицы? - PullRequest
1 голос
/ 18 января 2012

Учитывая две таблицы одинаковой структуры, но одну с 100M строками и другую с 100 строками, вставки в таблицу будут занимать больше времени?

Почему?

Ответы [ 4 ]

3 голосов
/ 18 января 2012

Вставка занимает больше времени для 100M строк, особенно если один из столбцов равен indexed. Из-за индексации, он должен будет индексировать новую вставленную строку соответственно, что занимает больше времени. Индекс является хорошим вариантом для операторов выбора, но если у вас есть больше вставок, это становится проблемой, так как для вставки требуется больше времени.

2 голосов
/ 18 января 2012

Да.Тем более, если на столе установлены индексы.Эта тема может быть хорошим чтением для вас.

1 голос
/ 18 января 2012

Да. Особенно из-за индексов. Если для этой таблицы определены индексы, то для каждой вставки необходимо выполнить некоторые вычисления.

например. Если в индексе говорится, что он упорядочивает строки отсортированным образом, то при вставке новой строки вы должны найти положение этой строки в столбце индекса. Там может быть алгоритм двоичного поиска, который делает это. Если есть 100 строк, это займет время log (100), но если будет 100M строк, это займет время log (100M).

0 голосов
/ 18 января 2012

Если к столбцу применяется индекс, а новые строки не вставляются последовательно в соответствии с индексом, то при вставке значений в середину индекса будет некоторое снижение производительности, что приведет к реструктуризации индекса. Тем не менее, вы не будете испытывать штраф на каждой вставке. В индексе BTREE есть место для вставки нескольких новых узлов в центр без необходимости реструктуризации индекса.

Без достаточной памяти вы можете столкнуться с проблемами подкачки с индексом.

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