Здравствуйте. Возникла необходимость написания чата. Как адекватный человек я задумался над основой до того, как начать писать.
Кто в теме хотелось бы услышать советы. Что лучше использовать? Базу или файлы? Файлы быстрее ввиду того, что нет тяжёлых запросов, из файла достаточно достать массив, это очень быстро. Историю чата можно постоянно подчищать, посчитав количество строк и удаляя из конца ненужные. Одновременную работу с файлом можно реализовать с помощью промежуточного файла. Для каждого юзера создавая уникальный файл кэша, куда будет вбиваться его сообщение после блокировки основного файла, и если он заблокирован его запросом, то уже при удачном сохранении старый файл базы чата удаляем, а кэш переименовываем в файл базы чата. Так можно избежать потери данных при большом количестве запросов. Плюс можно ограничить количество пользователей в одной комнате. Всё равно даже 20 юзерам одновременно в одном чате очень неудобно общаться при активном постинге, потому что сообщения слишком быстро проскакивают. Не вызовут ли такие махинации большую нагрузку на сервер нежели Мускул? И надёжна ли вообще эксклюзивная блокировка файла? Чисто гипотетически, если в одну секунду юзеров 5 будут пытаться писать в файл то все ли смогут это сделать? Возможно блокировка выдаст ошибку и не даст запостить? Я бы, конечно, лучше замутил на мускуле, но боюсь нагрузки. Есть тема использовать cron или просто по таймауту раз в секунд 30 брать из базы мускула поля чата, так же удаляя всё старое и ненужное чтобы запрос был легче, максимум полей 30-50 и создавать файл кэша с которым уже и будет работать сам чат, чтобы именно этот скрипт никакого отношения к ней не имел. Очень надеюсь на ваши подсказки. Руки чешутся, а к написанию из-за этого тупика никак не могу приступить.
используй мускул, с файлами мороки много будет.
очищать базу не трудно же
файлы сразу нет, мускул хорошо, но и в сторону других бд посмотри тоже для общего развития)
Файлы для чата это вобще ужос.
Бд однозначно, а если есть возможность, то вобще лучше взять Redis.
Спасибо что завершили мои терзания! Да уже понял, что с файлами много лишнего писать придётся. Накидал по быстрому и пол функционала уже 600 строк заняло... А это ведь только начало.
На изучение новой СУБД уйдёт уйма времени. Лучше постараюсь оптимизировать запросы к мускулу. Для общего развития смарел скул лайт, но что-то к мускулу я привык. На работе тоже он и при правильной оптимизации вроде всё летает.
Надо будет продумать систему кэширования. Пойду запилю phpinfo, мож на хостинге мемкеш есть.
bleakas, Это тебе газен? Бан за такое
Fenix_61 (08.05.2012/09:02)
А для чего мекеш нужен ?
Ссыль на Вики. Очень многие ответы от базы можно кэшировать чтобы не делать ненужные запросы. Например настроить жизнь кэша на минуту и тогда данные будут браться из кэша, а не из базы пока он не умрёт.
SlyDeath, у нас щас счетчики форума кешируются, на главной ... мне не нравится это
Jane, Есть сложности в запрете кэширования индекс страницы? Или я не так понял? =)