Как оптимизировать MySQL для обработки небольшой базы данных, т.е. <100 МБ? - PullRequest
6 голосов
/ 22 марта 2012

Я работаю над созданием базы, которая, вероятно, останется меньше, чем 100 МБ , имеет свой собственный сервер и будет считываться и изменяться через веб-приложение Java EE в интрасети. Я нашел много ссылок на оптимизацию для больших баз, и я знаю, что это гораздо более важная проблема, но у меня много времени, скорость чтения / вставки является приоритетом проекта, и я уверен, что я может как-то воспользоваться таким маленьким общим размером БД. Если, конечно, MySQL уже не оптимизирован для такого небольшого теста, конечно.

Конечно, он умещается в памяти, но мне нужно, чтобы его данные действительно сохранялись, на диске или, по крайней мере, вскоре сохранялись на диск; Я подумал о некоторых безумно звучащих альтернативах, таких как последовательная загрузка всей базы в память в первый раз, когда это необходимо (во время подключения пользователя, вероятно?), Каким-то образом, и последующая запись на диск.

Но я подумал, что лучше спросить здесь и посмотреть, сталкивался ли кто-то с такой ситуацией раньше, и у была неплохая идея получить прибыль от небольшого базового размера .

Я думаю о с точки зрения доступа к базе данных, а не о структуре , хотя, если у кого-то есть советы по проектированию структуры для небольших баз, и он считает, что они делают проблему оптимизации доступа совершенно неактуальной, утверждая, что это, вероятно, соответствующий ответ.

Заранее спасибо.

Редактировать: приложение довольно критично, и после того, как я это сделаю, оно будет разработано парнями, которые в основном привыкли к MySQL, поэтому разные СУБД не слишком удобны, если они не очень похожи на MySQL .

Ответы [ 2 ]

1 голос
/ 22 марта 2012

Базы данных были созданы для работы именно с такими вещами, поэтому большая часть инфраструктуры для вас.

Ответственность только за вас:

  • Создание соответствующих индексов на основе данных, объема и дБмс.

  • Нормализация данных.

  • Применять правильные проверки - не нули, уникальные и т. Д.

  • Используйте план объяснения, чтобы увидеть, как можно ускорить запросы - разные для каждой ситуации.

  • Использование кэширования для повышения производительности.

  • Убедитесь, что во всей таблице определены уникальные первичные ключи (возможно, очевидно, но все же требуется).

0 голосов
/ 22 марта 2012

Вы можете попробовать посмотреть на мембрану - мне очень хорошо говорят о производительности и настойчивости.По сути, это «база данных» памяти, которая сохраняется на диск.

...