SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 26.09.2010 17:15:33

bindstream
Участник
Зарегистрирован: 26.09.2010
Сообщений: 4

Прошу помощи: ограничения MySQL или какой вариант оптимальнее?

Занимаюсь разработкой мультипользовательского приложения PHP + MySQL. При регистрации пользователя в приложении ему можно:

1. создавать отдельную БД (в ней таблицы), нового пользователя БД;
2. создавать копию определенных таблиц (от 10 штук) с префиксом, идентифицирующим пользователя в единой БД, лазить в БД под единым пользователем.

Отсюда возникает актуальный вопрос:

1.а Какой из перечисленных способов оптимальнее.
1.б Какие ограничения мы при этом получаем.

Например 6000 пользователей дают во 2 способе 60000 таблиц.

За развернутый ответ заранее благодарю. Информацию где-либо в интернете или мануале найти не смог.

Неактивен

 

#2 26.09.2010 20:40:50

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Прошу помощи: ограничения MySQL или какой вариант оптимальнее?

А какая разница? smile

60к файликов в разных каталогах работают, конечно, быстрее, если
Вы получаете список файлов. Но если Вы обращаетесь по известным
именам, то никакой разницы в скорости доступа Вы не получите.

Неактивен

 

#3 26.09.2010 20:51:20

bindstream
Участник
Зарегистрирован: 26.09.2010
Сообщений: 4

Re: Прошу помощи: ограничения MySQL или какой вариант оптимальнее?

paulus написал:

А какая разница? smile

60к файликов в разных каталогах работают, конечно, быстрее, если
Вы получаете список файлов. Но если Вы обращаетесь по известным
именам, то никакой разницы в скорости доступа Вы не получите.

1. Хорошо. Если прогнозировать быстрый рост числа пользователей... какой из вариантов быстрее упрется в "тупик" возможностей MySQL. Например, есть ли ограничение на число таблиц в базе данных, или ограничение на число баз данных MySQL, максимальное число коннектов под одним юзером и т.д. Интересуют именно эти моменты. Еще же есть ограничения ОС (в данном случае FreeBSD).

2. Еще вопрос. Какой тип таблиц оптимальнее использовать для такого приложения: MyISAM или InnoDB. Каждый пользователь имеет доступ только 2.а) к своим 10 таблицам в единой БД 2.б) к своей БД под своим пользователем.

Отредактированно bindstream (26.09.2010 20:53:33)

Неактивен

 

#4 26.09.2010 21:20:08

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Прошу помощи: ограничения MySQL или какой вариант оптимальнее?

1 .MySQL не накладывает никаких искусственных ограничений; ограничения
ОС есть, но, скорее всего, их можно подкручивать через sysctl. Как работать
во FreeBSD я Вам сказать не смогу — это слишком сложная система для
меня wink ext4 и ntfs нормально справляются с ~100k файлов в каталоге при
условии, что Вы не делаете glob, а просто обращаетесь по имени.

2. Оптимально использовать тот тип, который нужен приложению. Если прило-
жение использует транзакции или болеет за консистентность данных — нужно
использовать InnoDB. Если приложение практически никогда не пишет, нужно
задуматься об использовании MyISAM. Последний, как правило, ест немного
меньше памяти (за счет того, что не кэширует данные).

Касательно количества файлов — табличка MyISAM использует 3 файла (frm +
MYD + MYI), InnoDB использует один файл в случае общего пространства дан-
ных (frm) или два файла со включенным innodb_file_per_table (frm + ibd).

Ах, да, подкрутите table_cache — иначе будете постоянно открывать-закрывать
дескрипторы.

Неактивен

 

#5 26.09.2010 21:30:37

bindstream
Участник
Зарегистрирован: 26.09.2010
Сообщений: 4

Re: Прошу помощи: ограничения MySQL или какой вариант оптимальнее?

Про table_cache можете рассказать подробнее? Что именно подкрутить?

Неактивен

 

#6 26.09.2010 22:54:25

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Прошу помощи: ограничения MySQL или какой вариант оптимальнее?

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson