Можно ли хранить mysql-базу на двух разных дисках?
Добрый день.
Есть сервер, на нём крутится большая (почти 150 гигабайт) БД. Она потихоньку растёт, и скоро полностью забьёт собой диск. К сожалению, 150 гигабайт - предел для хостера, диски большего размера он не даёт (но можно взять второй такой же).
Поэтому возникла необходимость разбить эту базу на два диска.
Как можно это сделать?
Можно почитать вот это: https://dev.mysql.com/doc/refman/5.7/en/general-ta... создать tablespace на разных дисках и сгрупировать по ним таблицы так, чтобы равномерно использовать место и производительность дисков.
Дополнительно, можно использовать сжатие данных для таблиц которые по большей части используются как архивные или доступ к которым происходит не часто.
Вообще, можно и если доступ часто, а запись не очень часто. При каждом обращении не будут разжиматься данные, если они в памяти уже. Да и разжатие там очень шустрое, в общем-то, и не даёт очень большого оверхеда по процу, обычно, да и io меньше, что может быть даже выгоднее.
Тут надо тестировать и сравнивать в конкретных случаях, чтобы понять что выгоднее, и насколько хорошо работает.
Как вариант собрать диски в рейд. Есть ещё чит с шардированием, но это пентакилл.
Но если сам мускль может работать с разным спейсами почему бы и нет это самое оно
metajiji, Скорее всего это не совсем физические диски, судя по ограничениям, и собирать из них рейд не всегда хорошая идея. К тому же какой? Собирать 0, это так себе идея в принципе... =) Плюс только один - автоматически более менее нагрузка будет балансироваться.
Почему бы и нет, если есть бекапы. 0 даст скорость, а jbod предоставит место в 1 точку. Тут дело вкуса уже. Рейд полюбас софтовый получится. Не понты конечно, но поедет. На самом деле будет проще с нативной фичей бд.
metajiji, 0 даст меньшую надёжность чем два отдельных диска. И большей скорости не даст.
Бакапы не увеличивают доступность - это мера восстановления, и доступностью пренебрегать не стоит, не смотря на их наличие.
Простота при настройке, тут, не компенсирует, как мне кажется, потенциальных проблем в эксплуатации.
The benefit of RAID 0 is that the throughput of read and write operations to any file is multiplied by the number of disks because, unlike spanned volumes, reads and writes are done concurrently, and the cost is complete vulnerability to drive failures.
nidalee Ваша цитата, на самом деле, это теоретическая оценка сверху, в идеальных условиях. На практике, скорость всегда меньше, чем суммарная скорость дисков массива, и в некоторых нагрузках заметно меньше, на это влияет, в частности размер чанка, и средний размер запроса.
Впрочем, не получится суммарной скорости, и в случае отделенных дисков - не получится так сбалансировать нагрузку руками.