![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| RaZoR |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 6.5.2004 Где: Оренбург Репутация: нет Всего: 1 |
у меня есть скрипт гостевой книги(http://filmoscope.h12.ru/guest/), так вот если там много записей, то скрипт выполнятеся долго.. сейчас у меня 13 записей в гуесте и время генерации скрипта ~0,2 сек.. а если их будет штук 100?? у меня возникла идея.. посты выводятся постранично(10 штук на страницу) и можно ли как-нибудь сделать считывание не всего файла(вместо file() что-либо другое), а только нужные 10 строк? к примеру если записей 25, то когда первая страница, то последние 10 строк, если 2 страница, то с 5 по 15, а если 3-я, то первые 5 строк.. это реально? или так еще дольше? или еще какие варианты есть?
|
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
Есть три варианта:
1. использовать mysql 2. использовать fopen, а новые сообщения писать в начало файла. 3. разбивать данные на файлы по 20 записей. |
|||
|
||||
| RaZoR |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 6.5.2004 Где: Оренбург Репутация: нет Всего: 1 |
1. пока отпадает, т.к. не знаю как с ней работать..
2. да, для всех страниц это будет быстрее, но для последней страницы будет тоже самое, хотя это мысль... 3. я думаю это выход, но неудобно.. если нужно к примеру удалить какой-нить пост из середины? тогда все менять.. |
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 10 Всего: 73 |
За то время, пока будешь мучать файловую гостевуху, можешь выучить основы mysql, поверь. Для гостевухи хватит знать четырех запросов SELECT, INSERT, UPDATE, DELETE. Хотя можно обойтись и без UPDATE. А, ну еще CREATE table.
Это сообщение отредактировал(а) Ignat - 22.6.2004, 20:42 -------------------- Теперь при чем :P |
|||
|
||||
| RaZoR |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 6.5.2004 Где: Оренбург Репутация: нет Всего: 1 |
возможно и так.. скоро собираюсь учить.. но в данном случае мне нужно решение именно этой проблемы.. с файлами..
|
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
RaZoR
пиши свою СУБД. |
|||
|
||||
| Chuck |
|
|||
![]() Сушня ![]() ![]() Профиль Группа: Эксперт Сообщений: 442 Регистрация: 12.12.2003 Где: Узбекистан, Ташке нт Репутация: нет Всего: 9 |
Не понимаю тебя дружище, у меня на хостинге был скрипт гостевой на файлах и ничего не тормозила, сейчас там записей 40-50, многие удаляются из-за похабностей, но ничего не тормозит!
Может ты криво скрипт написал??? Кинь ка его сюда, может там страшные циклы??? |
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
Ага, точняк... если у тебя каждео сообщение не весит кило по 100. У меня 10MByets файл читался за 1 сек и выводился (а это в среднем 10 000 записей).
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 5 Всего: 454 |
ИМХО
Максимально простое рещение в рамках заявленных знаний: 1) помещение каждой записи в отдельный файл либо группы записей для одной страницы вывода в отдельный файл; 2) созздание индексного файла с именами-ссылками на файлы записей. Тогда при каждом запросе читается и парсится индекс-файл - а он маленький - и один файл записей либо только те файлы записей, которые войдут в формируемую страницу. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
Akina
вот я и говорю писать свою субд. Ещё возникают проблемы с редактированием, нужно будет постояно переписывать индексный файл,.... |
|||
|
||||
| RaZoR |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 6.5.2004 Где: Оренбург Репутация: нет Всего: 1 |
да нет.. скрипт нормальный.. вначале идет считывание из файла и разделение по ячейкам, потом в шаблоне заменяется к примеру @message@ на сообщение и все.
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 5 Всего: 454 |
Secandr
Для случая "одна запись - один файл" в случае индексного файла со строками постоянной длины - никаких проблем... выверт а-ля deleted record в DBF. fopen(..."rb") + fseek - забиваем чисельный индекс пробелами-звездами-чем хотим... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
одна запись - один файл - это чрезвычайно не эффективно. Если записи 10-15 байт, а кластеры по 1кб , то информация будет занимать 500-900% от настоящего объёма.
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 5 Всего: 454 |
Конечно. Однако нежелание автора изучить мускул провоцирует на использование заведомо неоптимальных по другим параметрам решений.
И вообще - чего это мы? Жуем тут прописные истины... Кстати, при таком способе хранения (одна запись - один файл) рационально хранить в этом файле все необходимое ХТМЛ-форматирование. А это уже не 15 байт -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| RaZoR |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 6.5.2004 Где: Оренбург Репутация: нет Всего: 1 |
все, потестил я скрипт на больших файлах.. результат меня устраивает.. удивительно то, что скрипт работает практически одно и то же время с 10 записьями и с 10000 записями.. ~0,2 секунды.. вполне нормальный результат я считаю
|
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
RaZoR
О чем я и говорил -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
| Chuck |
|
|||
![]() Сушня ![]() ![]() Профиль Группа: Эксперт Сообщений: 442 Регистрация: 12.12.2003 Где: Узбекистан, Ташке нт Репутация: нет Всего: 9 |
Поддержим отечественных производителей |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |