|
|
|
Что лучше несколько маленьких баз или одна большая?
|
|||
|---|---|---|---|
|
#18+
Всем привет. Вот такой вопрос - планируется база примерно на 20 гигов в MySQL. При этом кол-во запросов к базе в сутки: INSERT-ов примерно 1 миллион, SELECT-ов примерно 2-3 миллиона. Есть возможность разбить базу на две или даже больше баз (2 по 10 гиг, или 5 по 4 гига...) Какой вариант предпочесть? Одну большую или несколько маленьких? Что будет лучше для сервера MySQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 11:16 |
|
||
|
Что лучше несколько маленьких баз или одна большая?
|
|||
|---|---|---|---|
|
#18+
Хороший вопрос... Я думаю, что одна база вполне подойдет, если, конесно файловая система сможет держать файлы таких объемов. Для UNIX это как правило не проблема ( подробности ). Второе, на что стоит обратить внимание, это на саму дискову подсистему, ну и на настройки MySQL сервера конечно. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 14:07 |
|
||
|
Что лучше несколько маленьких баз или одна большая?
|
|||
|---|---|---|---|
|
#18+
Все крутиться на RH 9, и размер конкретно этой таблицы может быть 900 Гб. (смотриться через show table status). Однако интересует это с точки зрения оптимизации? Что быстрее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 14:27 |
|
||
|
Что лучше несколько маленьких баз или одна большая?
|
|||
|---|---|---|---|
|
#18+
разные форматы бд не рассматриваешь? например, в myisam таблички хранятся в разных файлах. ma X mo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 14:32 |
|
||
|
Что лучше несколько маленьких баз или одна большая?
|
|||
|---|---|---|---|
|
#18+
суть не в форматах. что будет быстрее для сервара - брать/вствлять инфу в несколько маленьких баз или юзать одну большую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 14:38 |
|
||
|
Что лучше несколько маленьких баз или одна большая?
|
|||
|---|---|---|---|
|
#18+
думается, одну большую: не надо будет переключаться между базами (для myisam). Ну, если таблиц не миллионы. ma X mo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 14:51 |
|
||
|
Что лучше несколько маленьких баз или одна большая?
|
|||
|---|---|---|---|
|
#18+
Не, переключения между таблицами происходить не будет... База содержит две основные таблицы - юзеры и данные юзеров. При разделении баз система будет сразу знать, в какой из них инфа по юзеру и работать только с этой базой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 15:23 |
|
||
|
Что лучше несколько маленьких баз или одна большая?
|
|||
|---|---|---|---|
|
#18+
хмм, мало информации например, момент такой - по чем будут селекты? если по всей таблицы, то возникнет проблема чтения индекса, который не будет влезать в память; так же будут некоторые задержки с его обновлением... другой момент - обновление данных может конфликтовать с чтением, из-за полного лока таблицы myisam, т.е. надо принять вариант innodb к рассмотрению ;) и, наконец, если деньги есть на железо, лучше подумать о разнесении таблицы по частям на разные сервера (по дипазонам user id или по алфавиту или по хэшу или по времени суток), тогда каждый сервер будет иметь только часть данных и соотв. работать быстрее... но тут еще понадобится подключить к каждому серваку еще по одной машине в качестве slave-a, для бэкапа и хотсвапа.. -- Dmitry ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2004, 19:08 |
|
||
|
Что лучше несколько маленьких баз или одна большая?
|
|||
|---|---|---|---|
|
#18+
Сейчас попробую ответить. SELECT-ы будут достаточно простые. выборка двух полей, плюс обычная группировка и сортировка. Индекс по ID... Насчет железа - сейчас 2 x XEON 3,2 плюс 2 гига ОЗУ. В принципе крутиться неплохо... машина выдержит боооольшую нагрузку, но удержит ли столько данных MySQL :-) Разносить таблицы - имеется в виду просто чтобы программа определяла куда писать / откуда читать или есть какие-то средства? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 09:36 |
|
||
|
Что лучше несколько маленьких баз или одна большая?
|
|||
|---|---|---|---|
|
#18+
DmitryYSELECT-ы будут достаточно простые. выборка двух полей, плюс обычная группировка и сортировка. Индекс по ID... еще и группировка с сортировкой из 900GB таблицы? :) впрочем, если идет предварительный отбор десятка/сотни записей по primary key, то никаких проблем DmitryY Насчет железа - сейчас 2 x XEON 3,2 плюс 2 гига ОЗУ. В принципе крутиться неплохо... машина выдержит боооольшую нагрузку, но удержит ли столько данных MySQL :-) че ему держать-то, лежат себе на диске и лежат :) ты лучше возьми и посчитай кол-во индексов - влезут они в память потом? впрочем, это зависит, к какой части данных будут селекты - по всей таблице вразнобой или только "за последний день" - во-втором случае только часть индексов должна сидеть в памяти... DmitryY Разносить таблицы - имеется в виду просто чтобы программа определяла куда писать / откуда читать или есть какие-то средства? угу, именно; есть более "высокого" уровня типа load balancing-a, не уверен, что подойдет, имхо, свое написать и быстрее и проще -- Dmitry ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2004, 18:43 |
|
||
|
Что лучше несколько маленьких баз или одна большая?
|
|||
|---|---|---|---|
|
#18+
еще и группировка с сортировкой из 900GB таблицы? :) впрочем, если идет предварительный отбор десятка/сотни записей по primary key, то никаких проблем именно так :) и без выборки по primary key... выборка по индексному полю (id юзера)... че ему держать-то, лежат себе на диске и лежат :) ты лучше возьми и посчитай кол-во индексов - влезут они в память потом? впрочем, это зависит, к какой части данных будут селекты - по всей таблице вразнобой или только "за последний день" - во-втором случае только часть индексов должна сидеть в памяти... эт понятно :) но данные не лежат грузом, они очень упорно юзаются. как я говорил: "INSERT-ов примерно 1 миллион, SELECT-ов примерно 2-3 миллиона.", но немного ошибся, скорее наоборот. INSERT-ов больше получается. индексы влазят.. индекс по int, размер где-то полгига. угу, именно; есть более "высокого" уровня типа load balancing-a, не уверен, что подойдет, имхо, свое написать и быстрее и проще не совсем понял. в смысле лучше юзать утилиты или все-таки приложением думать в какую базу лазить? И теперь хочу поделиться своими наблюдениями по теме. Потестили мы это дело немного и в итоге получилось, что иметь много таблиц ГОРАЗДО выгоднее. так вот, имея много данных можно действительно разносить их по разным таблицам фиксированной длины. По UID врятли пойдет, а вот по дате можно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2004, 14:20 |
|
||
|
Что лучше несколько маленьких баз или одна большая?
|
|||
|---|---|---|---|
|
#18+
DmitryYне совсем понял. в смысле лучше юзать утилиты или все-таки приложением думать в какую базу лазить? я не знаю, что лучше, т.к. "утилиты" никогда не юзал :) DmitryY И теперь хочу поделиться своими наблюдениями по теме. Потестили мы это дело немного и в итоге получилось, что иметь много таблиц ГОРАЗДО выгоднее. так вот, имея много данных можно действительно разносить их по разным таблицам фиксированной длины. По UID врятли пойдет, а вот по дате можно... открыл америку :) разбиение всякой статистики по таблицам по-месячно - стандартная практика ;) С Наступающим! -- Dmitry ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2004, 22:46 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=32842649&tid=1854477]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 516ms |

| 0 / 0 |
