Задавайте вопросы, мы ответим
Вы не зашли.
У меня загружено и проиндексировано 2 млрд записей в таблице типа MyISAM (BTREE)
Необходимо каждый день добавлять новые записи.
Можно смело добавлять новые записи? Не приведет ли вставка к переиндексации всей таблицы?
Если нет, то что необходимо сделать, чтобы вставка новой информации была быстро произведена и основной индекс был доступен в любое время для поиска информации?
P.S.
Не придется ли заводить временную таблицу и ее индексировать (дельта-индекс) для вставки данных за день, затем отключать индекс в основной таблице, вставлять данные из временной а потом опять включать?
Неактивен
Можно добавлять записи - переиндексации всей таблицы не будет. BTREE-алгоритм достаточно эффективен для вставки.
С другой стороны, вставка в непустую таблицу будет существенно медленнее, чем вставка в пустую. Индекс на временной таблице не поможет. Попробуйте LOAD DATA INFILE, в этой процедуре реализован специальный алгоритм для bulk-insert.
Неактивен
Как я понимаю, в случае медленной вставки можно попробовать горизонтальный шардинг - то есть разбить эту здоровую таблицу на несколько разных с такой же структурой по какому-то критерию (если он есть вообще, такой критерий - чтобы разбиение было более-менее равномерное). В своё время мне приходило с сетевых железок по несколько сотен миллионов записей в сутки - и если бы я их все хранил в одной таблице, то в таблице за год накопилось бы столько данных, что вставка занимала бы просто огромное время. Я и хранил записи за каждые сутки в отдельной таблице (таблицы назывались 2010_01_01, 2010_01_02 ...). Просто в этом случае нужно на стороне клиента проследить, чтобы в зависимости от нужных суток обращение за данными шло в нужную таблицу.
Приходит еще в голову партиционирование, но в топике http://sqlinfo.ru/forum/viewtopic.php?id=2264 освещены подводные камни, так что шардинг, думаю, всё же лучше, если скорость вставки перестаёт устраивать.
Неактивен
VladimirPivovar написал:
У меня загружено и проиндексировано 2 млрд записей в таблице типа MyISAM (BTREE)
Необходимо каждый день добавлять новые записи.
Переиндексации быть не должно. Если не трудно расскажите о самих данных и о том что вы с ними делаете немного поподробнее?
Неактивен