Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 20 Июнь 2002, 10:01:00
Сабж... Предлагаю обсудить тему написания полноценного движка на РНР для сайта без использования msql. В качестве баз для хранения данных используются обычные текстовые файлы. Может кто задавался такой же проблемой и есть в этом определенный опыт. Давайте делится [img]images/smiles/icon_wink.gif[/img].
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 20 Июнь 2002, 10:36:00
evgenyk а что тебя конкретно интересует? [img]images/smiles/icon_wink.gif[/img] я сейчас дописываю бету движка. но в результате раздумий и проб пришел к выводу, что без полноценной БД - никуда не денешься - тормозить будет. Да и что за серьезный проект без БД? [img]spy.gif[/img] [img]images/smiles/icon_eek.gif[/img]
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 20 Июнь 2002, 12:59:00
Long меня интересует у кого это реально написанное имеется. Я сейчас на 80% стадии завершения. Написан файловый менеджер, новости, гостевая... Еще требуется много всего написать. Почему именно текстовый файл - не все хостинги поддерживают msql базы или за них надо отдельно платить. Проекты сайтов в основном небольшие. Управлять сайтом (обновлять, пополнять...) как то тоже надо (учитывая что пользователи не квалифицированные). Вот все от этого и пошло. Много разных но... База конечно хорошо, но мне пришлось отказаться …
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 20 Июнь 2002, 16:17:00
watcher [img]up.gif[/img] золотые слова [img]images/smiles/icon_wink.gif[/img] Извини, конечно, но проект, который не может оплачивать 10 баксов за хостинг с базой в месяц (ну или 60 за год) - это не серьезный проект. Тогда такому проекту и движек и динамика не нужна. (ну или пусть бесплатниками пользуется).
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 20 Июнь 2002, 16:35:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения watcher: <STRONG>evgenyk это разговор в пользу бедных, ты забываешь что если у тебя на сайте будет траффик валить, то твой движок просто напросто завалится.</STRONG><HR></BLOCKQUOTE>
И что же это за объективные причины, которые должны валить такой движок? Вопрос не праздный: я сам таким движком пользуюсь... [img]images/smiles/icon_smile.gif[/img]
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 20 Июнь 2002, 16:36:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Long: <STRONG>watcher [img]up.gif[/img] золотые слова [img]images/smiles/icon_wink.gif[/img] Извини, конечно, но проект, который не может оплачивать 10 баксов за хостинг с базой в месяц (ну или 60 за год) - это не серьезный проект.</STRONG><HR></BLOCKQUOTE>
Если проекту не требуется -- реально -- БД, то исключение ее автоматически снимает часть проблем по сопровождению.
9 Сообщения: 1827 Зарегистрирован: 21.10.01 Откуда: из тумбочки
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 20 Июнь 2002, 17:14:00
Crazy вопрос в другом, если развивать проек, то рано или позно на него придет множество людей, так что данный путь не подходит для нормальных коммерческих сайтов, скорее для домашних страничек, и статичных сайтов где обновление раз в год и то по расписанию.
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 20 Июнь 2002, 17:46:00
Crazy "Если проекту не требуется -- реально -- БД..." ты прочитай повнимательней автора - "...баз для хранения данных используются обычные текстовые файлы..." т.е. текстовая БД. отсюда и все вытекающие выводы. [img]images/smiles/icon_wink.gif[/img]
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 20 Июнь 2002, 18:42:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Long: <STRONG>"...баз для хранения данных используются обычные текстовые файлы..." т.е. текстовая БД. отсюда и все вытекающие выводы. [img]images/smiles/icon_wink.gif[/img]</STRONG><HR></BLOCKQUOTE>
Ну вот и я для хранения данных использую текстовые файлы. Но у меня это не вызывает тормозов. Я хочу понять, что ж я такое неправильно сделал... [img]images/smiles/icon_smile.gif[/img]
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 20 Июнь 2002, 18:44:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения watcher: <STRONG>Crazy вопрос в другом, если развивать проек, то рано или позно на него придет множество людей,</STRONG><HR></BLOCKQUOTE>
Согласен.
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR><STRONG> так что данный путь не подходит для нормальных коммерческих сайтов, скорее для домашних страничек, и статичных сайтов где обновление раз в год и то по расписанию.</STRONG><HR></BLOCKQUOTE>
А вот здесь не вижу ни одного технического аргумента. В действительности я вижу другое: 11 сентября крутой и навороченный -- весь на базах данных -- упал. И возродился вскоре в виде полустатического сайта.
Соответственно -- для меня -- логика строго обратная. А если учесть, что на недорогих хостингах устойчивость MySQL оставляет желать лучшего, то аргумент весьма серьезен.
9 Сообщения: 1827 Зарегистрирован: 21.10.01 Откуда: из тумбочки
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 20 Июнь 2002, 18:54:00
Crazy кроме MySQL есть еще одна какая-то MySQL с приставкой, которая платная, короче говоря, надо просто сразу думать что и как [img]images/smiles/icon_smile.gif[/img]
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 21 Июнь 2002, 00:11:00
Когда-то работал с ней (моя первая SQL'ная БД... аж слеза наворачивается). Воспоминания хорошие. Но лично мне представляется, что это геморрой с хостингом. Нет?
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 21 Июнь 2002, 02:31:00
нет. да.
то есть проблема есть, но далеко не везде. при colocation, разумеется проблем нет, но у многих хостеров такая база непопулярна.
под *nix проблем реально нет. АБСОЛЮТНО! то, о чём я пишу дальше, наблюдал на XP под Apache localhost. при отладке базы на я словил такой глюк... оно от меня кавычек в запросах обязательно захотело, иначе не работало.
select * from "table" where "blabla"="nahnah"… уй... я подавился в этом месте пирожным и пивом и писал дальше проект на mysql.
я научился обходить запросы типа селект в селекте, уходить от хранимых процедур, не использовать триггеры... ууу...
7 Сообщения: 150 Зарегистрирован: 09.01.02 Откуда: Пермь
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 21 Июнь 2002, 12:34:00
У меня сайт газеты работает на текстовом движке (помимо еще 50 сайтов на этом не самом мощном серваке), не тормозит. [img]images/smiles/icon_smile.gif[/img]Посетителей 250-700. Страниц просматривается от 1000 в день.
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 21 Июнь 2002, 13:33:00
(Сейчас будем гнуть пальцы)
1. Противопоставление решений "на базе" и "на текстовых файлах" несколько некорректно, ибо файловая система есть ни что иное как специализированная база данных.
2. Специализированность БД "файловая система" заключается в том, что она оптимизирована для выполнения -- в привычной терминологии -- операций с использованием первичного ключа (имя файла). Так, загрузка данных из указанного именем файла, удаление файла по имени, получение списка всех объектов, чьи первичные ключи обладают требуемым свойством (glob) -- все это выполняется весьма быстро. Операции же с иными информационными полями выполняются не в пример дольше. Под информационными полями здесь имеются в виду размер файла, дата, владелец и т.п., а также данные, хранящиеся в файле (понятно, что о них файловая система сама по себе ничего не знает).
3. Следствие: если для работы энжина требуются операции, использующие доступ по первичному ключу (прежде всего --публикация), то "текстовый" энжин практически не уступает реализации на основе БД. Если же требуются запросы по иным критериям (а особливо -- реляционные операции), то скорость такого энжина сразу падает до непристойных величин.
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 21 Июнь 2002, 23:56:00
Кстати, джентельмены, я так и не услышал ничего убедительного о причинах торможения текстового энжина. Мне озвучить свои мысли по этому поводу или все ж таки еще подождать? [img]images/smiles/icon_smile.gif[/img]
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 26 Июнь 2002, 10:26:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения evgenyk: <STRONG>Сабж... Предлагаю обсудить тему написания полноценного движка на РНР для сайта без использования msql. В качестве баз для хранения данных используются обычные текстовые файлы. Может кто задавался такой же проблемой и есть в этом определенный опыт. Давайте делится [img]images/smiles/icon_wink.gif[/img].</STRONG><HR></BLOCKQUOTE> На текстовых файлах можно написать все! Просто иногда это потребует больших неудобств. Я все подряд пишу на текстовых файлах и доволен. Пиши мне на мыло. goods2000@mail.ru
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 26 Июнь 2002, 10:59:00
как-то я упустил из виду что ветка продолжилась. [img]images/smiles/icon_sad.gif[/img] хорошо, что ее "подняли" [img]images/smiles/icon_wink.gif[/img] Единственное правило, которым, IMHO, нужно пользоваться при любой разработке - рациональность использования инструмента. Зачем из пушки по воробьям палить? Я о том, что нужно всегда взвешивать соотношение производительность/себестоимость/удобство разработки. работа с файлом будет по определению более тормозной потому как: а) база висит в памяти, скорость доступа к которой по определению быстрее б) "разбор" структуры текстового файла будет происходить значительно медленнее на скриптовых языках, чем скомпиленным файлом. Можно наверняка еще кучку примеров привести - "почему" Я думаю, одного пункта "б" уже достаточно, чтоб понять что тормоза будут у текстовой базы. Crazy, интересно, а на как ты оценишь скорость текстовой базы при линковании таблиц? [img]images/smiles/icon_wink.gif[/img] Это хорошо, если у тебя таблицы(файла) всего две. А если больше? Можно конечно таблицы не денормализовывать, но в итоге ты придешь к такой каше в файле, это раз, а во вторых повысится время на разборку структуры, это два, ну и напоследок любое изменение общей структуры БД будет очень болезненно сказываться на текстовой базе. Ну и совсем напоследок - у меня на муське бегает чат. Уже год (или это не срок? [img]smirk.gif[/img] ) не было выбадений базы. Падал хостер, его ломали, но муська - держится. У меня такое впечатление, что повалить муську можно только в винде. [img]laugh.gif[/img]
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 26 Июнь 2002, 12:27:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Long: <STRONG> а) база висит в памяти, скорость доступа к которой по определению быстрее</STRONG><HR></BLOCKQUOTE>
Есть такая штука: дисковый кэш. [img]images/smiles/icon_smile.gif[/img]
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR><STRONG> б) "разбор" структуры текстового файла будет происходить значительно медленнее на скриптовых языках, чем скомпиленным файлом.</STRONG><HR></BLOCKQUOTE>
Мы забываем, что тот жу MySQL каждый раз по-новой выполняет компиляцию и оптимизацию запросов. [img]images/smiles/icon_smile.gif[/img]
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR><STRONG> Я думаю, одного пункта "б" уже достаточно, чтоб понять что тормоза будут у текстовой базы. </STRONG><HR></BLOCKQUOTE>
Увы, увы. [img]images/smiles/icon_smile.gif[/img] Нужны более сильные аргменты.
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR><STRONG> Crazy, интересно, а на как ты оценишь скорость текстовой базы при линковании таблиц?</STRONG><HR></BLOCKQUOTE>
Разве я не писал выше о первичных ключах? [img]images/smiles/icon_smile.gif[/img]
<STRONG>Ну и совсем напоследок - у меня на муське бегает чат. Уже год (или это не срок? :smirk [img]images/smiles/icon_smile.gif[/img] ) не было выбадений базы. Падал хостер, его ломали, но муська - держится. У меня такое впечатление, что повалить муську можно только в винде. [img]laugh.gif[/img]</STRONG>
Лично я регулярно наблюдаю, как валится форум на флэшере из-за базы. [img]images/smiles/icon_smile.gif[/img]
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 26 Июнь 2002, 12:39:00
А можно узнать чайнику чем движек через mySQL от движка на текстовых будет отличаться?
На счет хостинга - хостись на net.ru -> $10/год (все навороты, 2мб, 1 ящик). $10 - подключение, $10 - поддержка, $25/год - сам домен .ru. имхо, самый дешевый и лучший хостинг.
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 26 Июнь 2002, 13:01:00
Crazy 1. дисковый кэш не катит обращение к нему будет значительно медленнее чем обращение к физической памяти (для сведения - по скорости работы обращения проц-памят самые быстрые, конечно после регистров проца и кэша самой памяти). 2. Может я чего не так объяснил... Работа откомпилированной функции, которая занимается разбором, будет значительно выше чем скорость такой же функции, но написанной на скриптовом языке. Думаю почему - объяснять не надо? [img]images/smiles/icon_razz.gif[/img] 3. Первая операция, которая приходит на ум при постороении форума линковка таблицы юзеров и сообщений. На сколько быстро с ней справятся текстовая БД и та же муська? 4. Можно хостится у васи пупкина за 5 баксов в год, но при этом не надо рыдать, что база падает. А можно купить хостинг на Зеноне. Есть еще куча хостингов в промежутке между ними (отсортированных по соотношению цена/качество). Я прозрачно намекаю? [img]images/smiles/icon_wink.gif[/img] BruNko, например, внимательно почитать эту ветку [img]images/smiles/icon_wink.gif[/img]
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 26 Июнь 2002, 13:40:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Long: <STRONG>Crazy 1. дисковый кэш не катит обращение к нему будет значительно медленнее чем обращение к физической памяти (для сведения - по скорости работы обращения проц-памят самые быстрые, конечно после регистров проца и кэша самой памяти).</STRONG><HR></BLOCKQUOTE>
В самом деле? И где же -- на твой взгляд -- живет дисковый кэш, если не в RAM? [img]images/smiles/icon_smile.gif[/img]
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR><STRONG> 2. Может я чего не так объяснил... Работа откомпилированной функции, которая занимается разбором, будет значительно выше чем скорость такой же функции, но написанной на скриптовом языке. Думаю почему - объяснять не надо? [img]images/smiles/icon_razz.gif[/img]</STRONG><HR></BLOCKQUOTE>
Для такой же -- верно. Но разве мы имеем дело с одинаковыми алгоритмами?
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR><STRONG> 3. Первая операция, которая приходит на ум при постороении форума линковка таблицы юзеров и сообщений. На сколько быстро с ней справятся текстовая БД и та же муська?</STRONG><HR></BLOCKQUOTE>
Для меня не очевидно, что разница в скорости в данном случае будет принципиальна. [img]images/smiles/icon_smile.gif[/img]
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR><STRONG> 4. Можно хостится у васи пупкина за 5 баксов в год, но при этом не надо рыдать, что база падает. А можно купить хостинг на Зеноне. Есть еще куча хостингов в промежутке между ними (отсортированных по соотношению цена/качество). Я прозрачно намекаю? [img]images/smiles/icon_wink.gif[/img]</STRONG><HR></BLOCKQUOTE>
Хостинг зачастую выбирает клиент. И использование лишних фич без должной на то необходимости означает лишь увеличение геморроя с поддержкой.
По результатам выполнения теста на моем домашнем компе выходит, что файловый вариант в 5 раз быстрее, чем с базой. [img]images/smiles/icon_smile.gif[/img]
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Заголовок сообщения: Менеджер сайта на РНР без использования базы msql... Добавлено: 26 Июнь 2002, 14:52:00
Crazy либо я тебя не понимаю, либо мы говорим о разных вещах - что ты подразумеваешь под этим - "дисковый кэш". Вижу, что меня не допоняли, поэтому копаю глубже. Представим самый простой случай - таблица с n-полями. Именно такие случаю тебя интересуют, насколько я понимаю из твоих постов. Построим такую структуру в текстовом файле. Какие операции происходят при работе с файлом? Открытие, чтение, разбор. Так вот - открытие и чтение одни из самых медленных операций на машине. В случае с БД ситуация совершенно иная. Если не очевидно проигрышь в скорости линковки - самое простое составь прогу на том же пхп. Посмотри, сколько там операторов? И их нужно, по крайней мере, все обработать сначала. В работе с базой даже если будет абсолютно такой же алгоритм, то откомпилированная функция выполнится гораздо быстрее. И последнее - мой совсем прозрачный намек не понят. Хостинг прежде всего должен быть надежным. По крайней мере удовлетворять тому соотношению цена/качество, которое необходимо заказчику. А про лишние фичи... Чтож - сам движок, на чем бы он не был написан, является такой фичей, ведь сложность поддержки возрастает [img]images/smiles/icon_wink.gif[/img] Пускай пишет в хтмле [img]laugh.gif[/img]
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.