Вопрос № 47027: Доброго времени суток.
Допустим есть БД в которой сохраняется несколько тысяч записей в сутки, они должны хранится несколько лет. Скажите пожалуйста,
можно ли в MySQL базу данных распихать по разным файлам, и имеет ли смысл в данной ситуации, т.е...
Вопрос
№ 47.027
Доброго времени суток.
Допустим есть БД в которой сохраняется несколько тысяч записей в сутки, они должны хранится несколько лет. Скажите пожалуйста,
можно ли в MySQL базу данных распихать по разным файлам, и имеет ли смысл в данной ситуации, т.е. насколько хорошо будет
разместить несколько миллионов записей в одном файле, насколько хорошо использовать MySQL, если нет то какая СУБД справляется
с этим лучше? И где можно почитать по этой теме?
Отправлен: 22.06.2006, 11:30
Вопрос задал: DragonTusk (статус: 2-ой
класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Архангельский Андрей Германович
Здравствуйте, DragonTusk!
Насчет MySQL не тестировал в таких режимах, но про FireBird могу сказать
10000 записей в день = 3650000 записей в год
Моя сегодняшня БД 25 млн. записей, т.е примерно 8 лет работы твоей, занимает 8Гб
Все зависит о характера данных и как они организованы. Если это плоская таблица, то тоскливо. Если данные нормализованы,
то они занимают место в несколько раз меньше и работает БД на порядки быстрее
Нужно определить причину, по которой данные храняться несколько лет. ЕСли это для истории, т.е. они постоянно не используются
а нужны только для поиска причин в критической ситуации, то старые записи можно сохранять в SQL-скриптах и сжимать RAR-ом
- занимают места в 30 раз меньше,
В общем для FireBird - 50 млн. записей не такая уж тяжелая задача.
Либо можно перейти на Oracle - она предназначена для больших БД.
--------- Если дело заслуживает быть сделаным, то оно заслуживает чтобы его сделали ХОРОШО
Отвечает: Santana
Здравствуйте, DragonTusk!
1) Резать базу по девайсам (файлам) есть смысл когда база у тебя грозит не уместится на диске сервера. Тогда подключаешь
еще сервера туда размещаешь кусок базы ... ну тд и тп. Кажется это называется клястер. При большом нарде думаю тебе это не
грозит.
2) Действительно малышка растет не по дням :). Надо переходить на что-то уровня предприятия. Как варианты Oracle, SyBase
ASE, MS SQL. Выбирай
Ответ отправил: Santana (статус:
3-ий класс)
Ответ отправлен: 22.06.2006, 12:07
Отвечает: Филатов Евгений Геннадьевич
Здравствуйте, DragonTusk!
В обзоре MS SQL Server 2005 говорится о секционировании таблиц и индексов. Можно таблицу разбивать по условию ключевого поля
и хранить кусками в разных файлах на диске. На скорость получения информации это не повлияет. Даже может ускориться за счет
меньшего размера индексов и времени поиска.
Для получения информации зайдите на сайт http://www.sql.ru/articles/mssql/2005/073102PartitionedTablesAndIndexes.shtml ,
там описано, для чего проводится секционирование, как хранятся данные и преимущества метода.
С уважением.
Ответ отправил: Филатов Евгений Геннадьевич
(статус: 4-ый класс)
Ответ отправлен: 22.06.2006, 19:31 Оценка за ответ: 4