1. 1Bot - 18 июля 2009 — 11:27 - перейти к сообщению
Желательно добавить в админку возможность осмысленного удаления файлов из папки UPLOADS, т.е. чтобы можно было определить к какому сообщению принадлежит файл и может удалить вместе/или без сообщения (исправить сообщение, чтобы не было ссылки на файл)
2. yura3d - 20 июля 2009 — 10:27 - перейти к сообщению
1Bot пишет:
Желательно добавить в админку возможность осмысленного удаления файлов из папки UPLOADS, т.е. чтобы можно было определить к какому сообщению принадлежит файл и может удалить вместе/или без сообщения (исправить сообщение, чтобы не было ссылки на файл)
На будущее учту, хотя в файловой версии это сделать достаточно сложно (в отличие от MySQL), т.к. информация о том, к какому именно сообщению прикреплён данный файл, разбросана по файлам данных форума (зайдите в любую папку forumN, там будут файлы вида attaches-M.php, где N номер раздела и M номер темы). Такой разброс необходим, хранить этот список одним файлом в рамках всего форума (по аналогии с таблицами в MySQL) нельзя, т.к. этот файл быстро разрастётся и при его обработке скорость форума значительно упадёт. Искать же сообщение перебором этих файлов тоже нерационально (и недопустимо для больших форумов, т.к. нагрузка на сервер будет возрастать)
3. yura3d - 20 июля 2009 — 11:02 - перейти к сообщению
vipraskrutka пишет:
yura3d, кстати еще один момент, неплохо было бы чтоб прикрепленные файлы складывались не в одну папку, а поделить их, по разделам например, т.е. в папке уплоадс чтоб были папки 1,2,3... , в общем думаю ты в курсе, что если в одной папке будет дохрена файлов - открытие таких папок занимает много времени и ресурсов, а на больших форумах или на форумах, тематика которых предполагает прикрепление дохрена файлов - может случиться полный пипец, к примеру vds с 1гб оперативки напрягается сверхсильно при открытии папки с 50к файлами, на шаред хостинге такого юзера бы уже выгнали ...
Скрипт построен таким образом, что эта папка никогда не читается (на чтение больших объёмов данных средствами PHP и уходит львиная доля ресурсов), обращаться можно лишь к конкретному файлу в папке (для этого и создаётся своеобразная база данных прикреплённых файлов). Создавать папки для прикрёпленных файлов в каждом из разделов не очень разумно, т.к. если в будущем мы захотим переместить тему из одного раздела в другой, то придётся перемещать и прикреплённые файлы, и если файлов пользователи неприкрепляли на, скажем, 100 Мб (у нас на сетевом форуме, где тестировался ExBB 2, бывало и гораздо больше, люди целые фильмы цепляли), то перемещение темы закончится не очень хорошо (а ведь в ExBB 2 есть функция массового перемещения тем, боюсь даже представить что будет в этом случае)
4. Victor - 21 июля 2009 — 19:15 - перейти к сообщению
yura3d а что если просто взять и создать файловый архив к форуму... пользователь загружает файл, он заносится в список с указанием размера, можно описание краткое.. а в теме указывается ссылка на него уже в файловом архиве, это удобней для отслеживания всех прикрепленных к форуму файлов, плюс удобство поиска, плюс зашел и видишь вот более свежая версия или другое решение или просто то что искал на другом ресурсе а оно здесь... в общем будет страничка со всеми файлами, их описанием и даже рейтингом сколько чего скачивали...
5. yura3d - 21 июля 2009 — 20:19 - перейти к сообщению
Victor
Уже говорил выше, нельзя хранить базу данных одним файлом (единым списком). Когда такая база дорастёт хотя бы до 2 Мб (а это не более сотни-двух файлов в базе), Вы уже получите солидное подтормаживание при её чтении и обработке, а после 20 - 30 Мб скрипт перестанет укладываться в отведённые стандартные 30 сек. для выполнения. К сожелению, тут всё не так просто, как в случае с таблицами в MySQL. PHP обрабатывает файлы (да и вообще любые большие объёмы данных) в сотни и даже тысячи раз медленнее Си (на котором, к слову, и написаны MySQL и PHP). Ключ к быстрой работе этого форума кроется в том, что большие массивы данных по возможности разбиваются на небольшие файлы-фрагменты, и при очередном запуске скрипта всякий раз обрабатываются не все данные, а только небольшая их часть. С поиском (особенно текстовым) по файлам всё тоже далеко не так просто, хотя создание индексных файлов (по аналогии с индексами для полей в MySQL) в большей степени решает проблему. Является ли описанная выше концепция разбиения данных по небольшим файлом идеальным подходом? Конечно же, нет! Но такая концепция позволяет, жертвуя некоторыми возможностями и функциями, достичь высокой скорости выполнения скриптов и минимального размера текстовой базы данных форума. Уже где-то приводил пример, после конвертации форума ExBB (база которого занимала 28 Мб, с учётом поискового индекса) на IPB 1.3 база стала занимать 71 Мб
Уже говорил выше, нельзя хранить базу данных одним файлом (единым списком). Когда такая база дорастёт хотя бы до 2 Мб (а это не более сотни-двух файлов в базе), Вы уже получите солидное подтормаживание при её чтении и обработке, а после 20 - 30 Мб скрипт перестанет укладываться в отведённые стандартные 30 сек. для выполнения. К сожелению, тут всё не так просто, как в случае с таблицами в MySQL. PHP обрабатывает файлы (да и вообще любые большие объёмы данных) в сотни и даже тысячи раз медленнее Си (на котором, к слову, и написаны MySQL и PHP). Ключ к быстрой работе этого форума кроется в том, что большие массивы данных по возможности разбиваются на небольшие файлы-фрагменты, и при очередном запуске скрипта всякий раз обрабатываются не все данные, а только небольшая их часть. С поиском (особенно текстовым) по файлам всё тоже далеко не так просто, хотя создание индексных файлов (по аналогии с индексами для полей в MySQL) в большей степени решает проблему. Является ли описанная выше концепция разбиения данных по небольшим файлом идеальным подходом? Конечно же, нет! Но такая концепция позволяет, жертвуя некоторыми возможностями и функциями, достичь высокой скорости выполнения скриптов и минимального размера текстовой базы данных форума. Уже где-то приводил пример, после конвертации форума ExBB (база которого занимала 28 Мб, с учётом поискового индекса) на IPB 1.3 база стала занимать 71 Мб
6. Victor - 21 июля 2009 — 20:28 - перейти к сообщению
yura3d в общем то с конвертацией понятно хотя для платных хостингов разница объемов незначительна... другое дело быстрота работы скрипта с этой самой базой
я имел в виду не вывод сразу всего каталога одной страницей боже упаси, а вывод скажем наподобие списка пользователей тоесть создание некоего текстового файла к которому будет обращаться скрипт и выводить порциями ссылки с описанием не более того но в одном месте поля могут быть файл-ссылка, размер, автор, рейтинг скачивания..тоесть это еще один файл куда будет каждый раз добавляться ссылка новая опять аналогия у меня с пользователями.. только мы регистрируем не пользователя, а файл.. закачиваем и сохраняем данные на него в этом списке так же как и пользователя можно проверять и удалять.. модерировать...где-то вот так
я имел в виду не вывод сразу всего каталога одной страницей боже упаси, а вывод скажем наподобие списка пользователей тоесть создание некоего текстового файла к которому будет обращаться скрипт и выводить порциями ссылки с описанием не более того но в одном месте поля могут быть файл-ссылка, размер, автор, рейтинг скачивания..тоесть это еще один файл куда будет каждый раз добавляться ссылка новая опять аналогия у меня с пользователями.. только мы регистрируем не пользователя, а файл.. закачиваем и сохраняем данные на него в этом списке так же как и пользователя можно проверять и удалять.. модерировать...где-то вот так
7. yura3d - 21 июля 2009 — 20:49 - перейти к сообщению
Victor пишет:
в общем то с конвертацией понятно хотя для платных хостингов разница объемов незначительна... другое дело быстрота работы скрипта с этой самой базой
В MySQL в некоторых случаях объём БД (именно БД, а не хранимых данных) может увеличиваться в геометрической прогрессии. Простой пример, для поля текста сообщений в таблице сообщений мы отводим 65536 символов (стандартный тип text, именно он применяется для хранения текстов сообщений в подавляющем большистве случаев), но абсолютное большинство сообщений имеют значительно меньшую длину, и в результате получаем огромный массив на жёстком диске никак не используемого, и при этом занятого пространства. Я согласен, что статическая типизация позволяет быстрее организовать выборку и поиск, но с другой стороны объёмы файлов, в которых хранятся таблицы, также играют не последнюю роль в скорости работы (особенно когда такие файлы сильно фрагментируются на жёстком диске)
8. 1Bot - 24 июля 2009 — 22:55 - перейти к сообщению
Victor пишет:
я имел в виду не вывод сразу всего каталога одной страницей боже упаси, а вывод скажем наподобие списка пользователей тоесть создание некоего текстового файла к которому будет обращаться скрипт и выводить порциями ссылки с описанием не более того но в одном месте поля могут быть файл-ссылка, размер, автор, рейтинг скачивания..тоесть это еще один файл куда будет каждый раз добавляться ссылка новая опять аналогия у меня с пользователями.. только мы регистрируем не пользователя, а файл.. закачиваем и сохраняем данные на него в этом списке так же как и пользователя можно проверять и удалять.. модерировать...где-то вот так
Есть в этом рациональное зерно, спасибо за предложение Вот бы еще реализацию увидеть
9. 1Bot - 18 февраля 2010 — 11:52 - перейти к сообщению
Может для администратора сделать отображение прикрепленных файлов так, чтобы дополнительно показывалось имя файла в папке UPLOADS?
Это даст хоть небольшую возможность идентификации.
Это даст хоть небольшую возможность идентификации.
10. electron - 18 февраля 2010 — 12:30 - перейти к сообщению
в старых врсиях форума был мод "список приаттаченных файлов" или что-то в этом роде. там выдавался список файлов и их можно было удалять. вот бы его модернизировать под эту версию
11. electron - 19 февраля 2010 — 19:52 - перейти к сообщению
кстати, в том моде по ходу дела подкорректировать надо 16 и 18 строку в файле listattachedfiles.php и он встанет на RC1 . в пхп не сильно шарю, а мод был бы неплохой. кто возьмется?