Как реализовать базу данных с 100 000 000 (100 млн.) записей?
Нужно организовать базу данных с 100 000 000 записей, использовал php mysql, уже второй день пишет туда. Но это не вариант. Нужен максимально быстрый срок.
Есть идеи? Возможно использовать другую бд? (например какую)
Создать цикл подходит, но отнимает очень долго времени. Нужно максимально быстро.
Такой цикл за два дня с учетом траблов, заполнил около 1 млн. А нужно еще 79.
Все это делается, просто чтобы протестить поиск по записям.
в бд 2 поля. code, isActivated
Если у вас ID auto_increment. То достаточно записать в фаил случайные данные разделенные новой строкой и сделать LOAD DATA INFILE 'xxx' INTO TABLE 'xxx' (code);
Индексы отключите и вставлять не по одному, а большими пачками. У меня 45 миллионов на днях забилась примерно за пару минут. Конечно всё зависит от размеров данных, но всё же вырубите индексы. А то после каждой вставки пересобирается индекс, чем дальше, тем медленее будет вставка.
Тут правильно говорят про LOAD DATA INFILE 'xxx' INTO TABLE 'xxx', только одна оговорка -- файл должен быть локальным по отношению к mysql-серверу.
У меня была задача сгенерировать 80 млн записей 4кб текста (вырезанного из 100 Кб шаблонного текста).
Я в своё время сделал так (т.к. php и mysql работал на одной машине):
1. Сделал RAM-диск, и примонтировал его к ФС.
2. На этот рам диск я писал нужные мне данные в CSV объемом где то 1 гб
3. Загружал в mysql с помощью LOAD DATA ...
Как показывали расчеты, если бы я это делал с помощью INSERT INTO то это продолжалось бы в районе 11 часов. Используя LOAD DATA я уложился в 40 мин. Причем сам по себе экспорт данных 1 Гб в mysql занимал порядка 10 сек, время генерации 1Гб файлика на php составляло порядка 3 минут, отсюда выводы --- берите LOAD DATA ... и готовьте с помощью него, вещь годная.