Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Занимаюсь разработкой мультипользовательского приложения PHP + MySQL. При регистрации пользователя в приложении ему можно:
1. создавать отдельную БД (в ней таблицы), нового пользователя БД;
2. создавать копию определенных таблиц (от 10 штук) с префиксом, идентифицирующим пользователя в единой БД, лазить в БД под единым пользователем.
Отсюда возникает актуальный вопрос:
1.а Какой из перечисленных способов оптимальнее.
1.б Какие ограничения мы при этом получаем.
Например 6000 пользователей дают во 2 способе 60000 таблиц.
За развернутый ответ заранее благодарю. Информацию где-либо в интернете или мануале найти не смог.
Неактивен
А какая разница?
60к файликов в разных каталогах работают, конечно, быстрее, если
Вы получаете список файлов. Но если Вы обращаетесь по известным
именам, то никакой разницы в скорости доступа Вы не получите.
Неактивен
paulus написал:
А какая разница?
60к файликов в разных каталогах работают, конечно, быстрее, если
Вы получаете список файлов. Но если Вы обращаетесь по известным
именам, то никакой разницы в скорости доступа Вы не получите.
1. Хорошо. Если прогнозировать быстрый рост числа пользователей... какой из вариантов быстрее упрется в "тупик" возможностей MySQL. Например, есть ли ограничение на число таблиц в базе данных, или ограничение на число баз данных MySQL, максимальное число коннектов под одним юзером и т.д. Интересуют именно эти моменты. Еще же есть ограничения ОС (в данном случае FreeBSD).
2. Еще вопрос. Какой тип таблиц оптимальнее использовать для такого приложения: MyISAM или InnoDB. Каждый пользователь имеет доступ только 2.а) к своим 10 таблицам в единой БД 2.б) к своей БД под своим пользователем.
Отредактированно bindstream (26.09.2010 20:53:33)
Неактивен
1 .MySQL не накладывает никаких искусственных ограничений; ограничения
ОС есть, но, скорее всего, их можно подкручивать через sysctl. Как работать
во FreeBSD я Вам сказать не смогу — это слишком сложная система для
меня ext4 и ntfs нормально справляются с ~100k файлов в каталоге при
условии, что Вы не делаете glob, а просто обращаетесь по имени.
2. Оптимально использовать тот тип, который нужен приложению. Если прило-
жение использует транзакции или болеет за консистентность данных — нужно
использовать InnoDB. Если приложение практически никогда не пишет, нужно
задуматься об использовании MyISAM. Последний, как правило, ест немного
меньше памяти (за счет того, что не кэширует данные).
Касательно количества файлов — табличка MyISAM использует 3 файла (frm +
MYD + MYI), InnoDB использует один файл в случае общего пространства дан-
ных (frm) или два файла со включенным innodb_file_per_table (frm + ibd).
Ах, да, подкрутите table_cache — иначе будете постоянно открывать-закрывать
дескрипторы.
Неактивен
Про table_cache можете рассказать подробнее? Что именно подкрутить?
Неактивен
Неактивен
Страниц: 1