не катит.. файл могут в это время читать/записывать другие юзеры... при этом размер файла растет... если речь о 5-10 Кб, то да, а если это в результатет выльется в пару мегов?Читаешь файл в массив, вырезаешь, записываешь.
ситуация такая - файл, куда кидается инфа по корзине магазина... в нужный момент мне надо изменить какую либо запись в середине файла.... я его блокирую... переписываю, это при условии его размера в пару мегов, а в это время кто-то еще пытается туда записать заказ... и вот тут облом...flock на время чтения
если посещаемый магазин, то даже ссылки на контент всех заказов будут весить эти меги....а почему он пару мегов???
то есть другими словами мне непонятно что там хранится может что набирается пара метров!?? заказы всех юзеров за все время?
у тебя все задачи на пределе вычислительных мощностей
планируй алгоритмы так тебе самому легче будет
логика перехода с БД на файловую систему такая:клевел.
запомни две простые вещи, которые снимут у тебя массу вопросов
1. перезаписать внутри файла можно только безо всяких сдвигов. Только затирая иформацию.
2. Следствие из этого - если что-то надо сдвинуть, то это достигается перезаписью всего файла.
Исходя из этих принципов, и планируй свои желания и вопросы.
Теперь ты понимать начинаешь, почему ВСЕ делают такие вещи в базе данных?
У тебя корзины всех юзеров в одном файле хранятся? Разнеси по разным файлам. Имя файла - логин или ID юзераситуация такая - файл, куда кидается инфа по корзине магазина... в нужный момент мне надо изменить какую либо запись в середине файла.... я его блокирую... переписываю, это при условии его размера в пару мегов, а в это время кто-то еще пытается туда записать заказ... и вот тут облом...
нифига не понял. Зачем временную таблицу создавать? И left join зачем? ИМХО БД неправильно организованаесли мне надо найти пользователей, которые зашли повторно через 10 мин после последней просмотренной страницы, то при использовании мускула для этих целей запрос содержит три left join->temporarry table, из которой при помощи groub by,count выдает уже нужные данных
таблица статистики:нифига не понял. Зачем временную таблицу создавать? И left join зачем? ИМХО БД неправильно организована
на сессию не полагаюсь... задача файла корзины для каждого пользователя - не только сохранять новые заказы, но сохранять в случае редактирования неоформленных заказов + статистика по оформленным заказам. неоформленным.А корзину делаешь в сессиях, с использованием куков. Хроном потов раз в час или два делаешь обработку этих ТЯХАЛЕННЫХ файликов. Ну?