Re[19]: По поводу производительности и целостности
От: Rumata Россия http://atamur.livejournal.com
Дата: 15.06.03 19:09
Оценка:
Здравствуйте, DSD, Вы писали:

DSD>>>Удобства себе программист лолжен обеспечить сам. Отдельно.

R>>Ну тогда надо писать на асме =))
DSD>Тогда уж лучше скажите — сразу на машинном коде, ведь компилятор — тоже "удобство для программиста".
DSD>Где-то в юморе кажись, проскакивала клава всего с тремя кнопками: "0", "1" и "Done". самое оно.
Ну дык по Вашей логике так и получается — это ведь действительно быстрее будет. Да и машинные коды тут не причем — ассемблер все равно в них один в один переводится.

R>>М-м-м. Вы меня не совсем правильно поняли. Я пытаюсь сказать, что преимущество БД перед ФС (у которой при правильной организации скорость возможно действительно чуть-чуть возрастет (но именно чуть-чуть — см. пост Андира))

DSD>Для меня Андир пока что: собеседник и оппонент в некоторых довольно интересных спорах и дискуссиях, но он еще не перешел в разряд "Фигурновых, Страуструпов и пр.", так что моё ИМХО — Андир тут весьма заблуждается, и следовательно не стоит мне его утверждения приводить, как откровение Божье. Лучше сами что-то докажите, чем теоретизировать на голом месте и мнениях других. Надеюсь, не слишком резко загнул?
Я имел в виду не мнение Андира, а его пример =)

R>>в том, что БД (при правильном проектировании) хранит данные, а Вы в файловой системе — представление данных.

DSD>Хм... Я понял Вашу точку зрения. В таком случае в конечном итоге БД тоже хранит представление данных. Ужас, не так ли?
DSD>Еще вопрос, чем именно Вы отличаете эти два понятия? Что такое данные и что такое их представление по-вашему?
Я понимаю, что вообще говоря это одно и тоже =))
Я имел в виду, что в Вашем случае вы используете некий частный случай представления данных, вполне возможно не нормализованный и т.д. Это повышает производительность для одни операций и понижает для других.

R>>Часто используемое — да. Обеспечивающее небольшой прирост производительности — да. Но за все надо платить. В результате потом труднее будет добавлять функциональность, переходя от версии 1.7б к версии 2.0.

DSD>Это должно быть продумано на этапе проектирования, а не ценой производительности поддерживать эту возможность во время реальной работы приложения.
Э-э-э ну Вы загнули, на этапе проектировнаия. Это нереально! На этапе проектирования нужно заложить возможность расширения, а не предполагать это расширение. Кто же знал на этапе проектирования, что в ICQ2002b пояится возможность хранить список контактов на стороне сервера?..

R>>Рухнет вся производительность, если прйдется выводить/обрабатывать другое представление данных. Ну и т.д.

DSD>Нужно будет — переберу формат. И времени это у меня займет много меньше, чем Вы себе представляете.
Это как, переберете формат??? У вас уже к этому времени будет эн-цать скриптов, которые работают с текущим форматом ...

Ваш способ повышает производительность за счет времни жизни программиста =)) имхо это не оправдано в условиях веб-проектов. Хотя, конечно, леший его знает.
Re[11]: php - распарсить html
От: Rumata Россия http://atamur.livejournal.com
Дата: 15.06.03 19:13
Оценка:
Здравствуйте, DSD, Вы писали:

DSD>>>Странно, мои подобные задачи стали работать гораздо быстрее, когда я их переписал с варианта на MySQL на вариант с использованием файловой системы и кеша.

R>>Возможно Вы неудачно проектироали структуру бд.
DSD>Кхм... Пора мне в монастырь, похоже, уходить..
DSD>Спроектируй, а? Тогда поверю.
Ну у меня все впереди =))

DSD>>>И еще. Вы действительно почувствовали, что БД работает быстрее, чем FS на своем опыте? То есть Вы пробовали и так, и так, да?

R>>Да. Быстрее настолько, что при работе через фс пхп иногда вылетал по таймауту. Такая уж задача была.
DSD>Отвечу Вашей же фразой: Возможно Вы неудачно проектироали структуру бд в FS.
DSD>А серьезно — не зная условий задачи и способа, которым Вы ее реализовывали, мне трудно судить о чем-либо...
В тот момент, когда я писал первоначальный пост, я еще не уловил всю глубину Вашей идеи , так что снимаю этот аргумент.

DSD>В общем случае мы сравниваем варианты проектирования(и реализации, конечно же) с использованием СУБД и без.

А что тут сравнивать? И так понятно, что под конкретную задачу Ваша ФС будет работать быстрее. Особенно, если ее написать на асме ...
СУБД для того и нужна, чтобы облегчить людям жизнь ... так же, как, например, перл и пхп, хотя писать можно и на с++ и это будет быстрее работать.
Re[21]: php - распарсить html
От: Andir Россия
Дата: 15.06.03 22:54
Оценка:
Здравствуйте, DSD, Вы писали:

[skip]
Лень пока отвечать на всё предыдущее, занят я немного .

DSD>Еще в качестве примера хочу привести какой-нибудь интернет-магазин.

DSD>Например http://www.ozon.ru
DSD>Это достаточно известный и раскрученный проект, что позволяет судить о присутствии добротной внешней нагрузки на сервер.
DSD>Полагаю, что там используется СУБД, ведь врядли у начальства есть столько денег(а точнее, желания их платить), чтобы дать зарплату программистам, которые собрали бы этот сервер без использования СУБД.

Вот здесь я знаю, там стоит CMS Dynasite. А здесь описание платформы динасайта.

DSD>Так вот, мои мысли по поводу:

DSD>Там стоит довольно мощная тачка, чтобы выдержать наплыв посетителей.

Полностью прав.

DSD>Я думаю, что если хорошо продумать и собрать эту же систему без использования промышленной СУБД, то для обслуживания того же потока посетителей хватило бы машины, типа Пентиум_сто_шестьдесятшесть_Мэ_Мэ_Ха с умеренным количеством оперативки. Чего с использованием СУБД добиться не удастся.


Там никто этим не занимался, просто купили сразу систему, которой и нужна не слабая выделенная тачка.

DSD>Сужу я не из теоретических знаний, а из практического опыта.


Ну мне наверно практического опыта не хватает, но время пока есть ...

С Уважением, Andir!
Re[20]: По поводу производительности и целостности
От: DSD Россия http://911.ru/cv
Дата: 15.06.03 23:29
Оценка:
Здравствуйте, Rumata, Вы писали:

R>Ну дык по Вашей логике так и получается — это ведь действительно быстрее будет. Да и машинные коды тут не причем — ассемблер все равно в них один в один переводится.

Закроем эту тему в связи с ее большим отношением к юмору, чем к нашему флейму.

R>Я имел в виду не мнение Андира, а его пример =)

Ну, значит по моему ИМХУ — вы оба заблуждаетесь

DSD>>Еще вопрос, чем именно Вы отличаете эти два понятия? Что такое данные и что такое их представление по-вашему?

R>Я понимаю, что вообще говоря это одно и тоже =))
R>Я имел в виду, что в Вашем случае вы используете некий частный случай представления данных, вполне возможно не нормализованный и т.д. Это повышает производительность для одни операций и понижает для других.
Ну естесственно. И моя задача — повысить для тех операций, которые будут использоваться, но так, чтобы понижение производительности относилось к неиспользуемым

R>>>Часто используемое — да. Обеспечивающее небольшой прирост производительности — да. Но за все надо платить. В результате потом труднее будет добавлять функциональность, переходя от версии 1.7б к версии 2.0.

DSD>>Это должно быть продумано на этапе проектирования, а не ценой производительности поддерживать эту возможность во время реальной работы приложения.
R>Э-э-э ну Вы загнули, на этапе проектировнаия. Это нереально! На этапе проектирования нужно заложить возможность расширения, а не предполагать это расширение. Кто же знал на этапе проектирования, что в ICQ2002b пояится возможность хранить список контактов на стороне сервера?..
А Вы думаете, что в ICQ используется промышленная или самописная, но полноценная СУБД?
Или Вы думаете, что добавить функциональность или поле не в СУБД — это так сложно?
Или Вы думаете, что они так долго это делали, потому что это сложно реализовать?
в последних двух вопросах ответ "да" — ошибочен. Для второго вопроса для облегчения работ можно написать тулзу, а что касается третьего вопроса — им нужно было продумать, какие обьемы данных займут эти контакты. Ведь их где-то нужно хранить. А у AOL винты тоже не резиновые Нужно потратить кучу денег на устройства хранения данных, и это при том, что ICQ — бесплатна и в принципе убыточна. Эта тема где-то обсуждалась в инете самой AOL.
Насчет первого не уверен, т.к. у меня нет этой информации и следовательно, наверняка я знать не могу, но думаю, что ответ — тоже "нет".

R>>>Рухнет вся производительность, если прйдется выводить/обрабатывать другое представление данных. Ну и т.д.

DSD>>Нужно будет — переберу формат. И времени это у меня займет много меньше, чем Вы себе представляете.
R>Это как, переберете формат??? У вас уже к этому времени будет эн-цать скриптов, которые работают с текущим форматом ...
Ну, кстати, не скриптов... Я предпочитаю писать на Си — скорость все-таки А если пишу не на Сях, значит скорость мне не важна и следовательно, можно поюзать и СУБД
Расширить формат — раз плюнуть. Тоже мне проблема... Длину записи для каждого формата, а так же оффсеты и длины полей я храню отдельно в константах. То есть изменить их можно за один раз в одном месте исходника(точнее в заголовочных файлах).

А если приходится глобально и серьезно менять формат хранения данных(т.е. менять почти все) — дык и в СУБД это гемор для программиста.

R>Ваш способ повышает производительность за счет времни жизни программиста =)) имхо это не оправдано в условиях веб-проектов. Хотя, конечно, леший его знает.

Насчет лешего не уверен, но я — знаю Естесственно, я страдаю патологической ленью, как и большинство программистов. И естесственно я всегда все планирую так, чтобы по возможности максимально облегчить себе жизнь в дальнейшем.
--
DSD
Re[12]: php - распарсить html
От: DSD Россия http://911.ru/cv
Дата: 15.06.03 23:35
Оценка:
Здравствуйте, Rumata, Вы писали:

DSD>>Спроектируй, а? Тогда поверю.

R>Ну у меня все впереди =))
Согласен

R>СУБД для того и нужна, чтобы облегчить людям жизнь ... так же, как, например, перл и пхп, хотя писать можно и на с++ и это будет быстрее работать.

Дык ёлы-палы, а кто говорит об отказе от СУБД вообще? Я говорю, что нужно уметь и так и эдак, и совмещать оба метода там, где это выгоднее.
Я просто сетовал на то, что большинство современных веб-программеров(и не только веб) умеют хранить данные только в СУБД(и немножко — в текстовых файлах). И когда от них требуется, чтобы приложение работало быстрее, они не задумываясь идут трясти начальство на более крутые тачки. Мысль понятна? Продолжать не нужно?
--
DSD
Re[22]: php - распарсить html
От: DSD Россия http://911.ru/cv
Дата: 15.06.03 23:44
Оценка:
Здравствуйте, Andir, Вы писали:

A>Здравствуйте, DSD, Вы писали:


A>[skip]

A>Лень пока отвечать на всё предыдущее, занят я немного .
не вопрос

A>Вот здесь я знаю, там стоит CMS Dynasite. А здесь описание платформы динасайта.

Слышал о такой.

DSD>>Я думаю, что если хорошо продумать и собрать эту же систему без использования промышленной СУБД, то для обслуживания того же потока посетителей хватило бы машины, типа Пентиум_сто_шестьдесятшесть_Мэ_Мэ_Ха с умеренным количеством оперативки. Чего с использованием СУБД добиться не удастся.

A>Там никто этим не занимался, просто купили сразу систему, которой и нужна не слабая выделенная тачка.

Это вполне естесственно, и я их за это не сужу. В данном случае затраты не так велики и производительность будет приемлемая.
Это был пример почти с потолка.
Просто бывают другие проекты или части проектов, в которых ох как стоило бы полностью или частично отказаться от СУБД. И в первую очередь из-за производительности. Читай здесь последний абзац: http://rsdn.ru/Forum/Message.aspx?mid=296824&only=1
Автор: DSD
Дата: 16.06.03


DSD>>Сужу я не из теоретических знаний, а из практического опыта.

A>Ну мне наверно практического опыта не хватает, но время пока есть ...
Наверно Хотя базы ты, я вижу, знаешь неплохо
Только ты их очевидно хорошо знаешь снаружи, а я — больше изнутри — пришлось ковырять при разработке своих проектов
--
DSD
Re[9]: Маньяк
От: King Oleg Украина http://kingoleg.livejournal.com
Дата: 15.08.03 12:53
Оценка: +1
Мне пришло на ум такое сравнение (люблю аналогии )

Допустим, убийца выбирает оружие из трех вариантов:
1. Ложка (очень больно. говорят)
2. Кухонный нож (есть гарантия, менты не прицепятся)
3. Сделать нож самому или заказать под конкртного человека (стремно и много мороки).

Собственно, я бы выбрал хороший кухонный нож. Это быстрее (его выбрать). Не надо никого боятся при покупки. Не надо боятся своих ошибок. Всегда получишь сервис. Конечно, я понимаю, что не всякий нож может убить любого человека — но можно выбрать подходящий в магазине.

Конечно, я не профессионал в деле про убийства.

Так вот. Ложка — это для любителей поизвращится (текстовые БД). Сделать свой нож — по-моему, тоже извращение, если это не оправдывается ТЗ (своя БД). А Кухонный нож — именно та середина (существующие БД).

Что вы думаете по этому поводу?
King Oleg
*Читайте DOC'и, они rules*
Re[10]: Маньяк
От: oRover Украина  
Дата: 16.08.03 17:41
Оценка:
2 King Oleg

Странные у тебя ассоциации какие-то

А теперь о птичках.
Когда были все записи (правда, в текстовом виде) записаны в файл (на строку шло порядка 400 байт, 8 полей) то когда уже все это достигло 300 тыс — было решено перенести это на БД (MS SQL). Скорость выборки в многопользовательском режиме (веб-сайт, порядка пару обращений в сек) увеличилась в 13 (!) раз. Я знал, что увеличится в несколько раз, но от силы раз в 5.

Причины тому:
1. Блокировки. В текстовом файле когда один пользователь пишет — файл нужно блокировать ЦЕЛИКОМ. В базе же можно блокировать одну запись, в то время другие пользователи смогут обращаться к остальным записям.
2. Индексирование (а не перерывание всего файла в поисках нужной информации. В текстовом иначе нельзя)
3. Кеширование

Если же использовать бинарные файлы, то нам нужно:
1. блокировки (в различных вариантах, от записи до всего файла)
2. язык запросов для эффективного поиска
3. индексирование
4. желательно еще и ограничения, связи

смотрим, что мы получили с бинарного файла? не БД ли уже это?
хотя не совсем БД. Она не клиент-серверная. В том же MS SQL все вышеперечисленные механизмы реализованы в серверной части БД, у нас же в самой программе. Очень смахивает на DAO с Access'ом — есть mdb-файл и остальная вся часть реализуется в пользовательской программе с помощью DAO. И почему-то по производительности это сильно уступало серверным БД и от этого давно отказались...


ЗЫ. Конечно, я не могу не согласиться, что для одного запроса в минуту бинарный файл будет эффективнее
... << RSDN@Home 1.1 beta 1 >>
Re[14]: php - распарсить html
От: pidolas  
Дата: 29.09.04 20:16
Оценка: :)
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, DSD, Вы писали:


DSD>>Возможно это зависит от размера читаемого файла. Того самого, который txt-шник...


А>Вы пример смотрели? Там файл размером 260К, причем zip


264K

DSD>>Сдается мне, что file_get_contents() будет выигрывать только на мелких файлах.


А>И он выигрывает
Re[4]: FCKeditor
От: Mamut Швеция http://dmitriid.com
Дата: 29.09.04 23:26
Оценка: 57 (1)
Здравствуйте, lozzy, Вы писали:

L>Здравствуйте, Кодт, Вы писали:


L>[...]Копай в сторону [...] онлайнового редактора на основе IE.


Не обязательно только IE.

FCK Editor. Обещают поддержку и Мозиллы.

Вроде работает, вроде человеческий (сам не скачивал, но демка на сайте работает)

Высивыг + возможность напрямую редактировать сорц


dmitriid.comGitHubLinkedIn
Re[14]: php - распарсить html
От: Mamut Швеция http://dmitriid.com
Дата: 30.09.04 00:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, DSD, Вы писали:


DSD>>Возможно это зависит от размера читаемого файла. Того самого, который txt-шник...


А>Вы пример смотрели? Там файл размером 260К, причем zip


DSD>>Сдается мне, что file_get_contents() будет выигрывать только на мелких файлах.


А>И он выигрывает


а если файл размером в десятки или сотни мегабайт? как, например число пи до нного знака после запятой. или геофизические данные?


dmitriid.comGitHubLinkedIn
Re[2]: php - распарсить html
От: Mamut Швеция http://dmitriid.com
Дата: 30.09.04 00:32
Оценка:
Здравствуйте, Ветер, Вы писали:

В>В общем писал я парсер хтмл для пхп и даже написал. Сам тектс для разбора хранится в одной строке (не надо его разбирать построчкам). И работает медленновасто. Но вообще то для таких целей по-моему используют XML, а для него парсер в пхп уже встроен.


В>сам парсер валяется www.fareastmotors.ru/parser/index.php



В PHP PEAR есть SAX парсер (их там целых два), позволяющий ппарсить неправильные XML-файлы (типа HTML).

Там также есть Code colorer, можно на них взглянуть


dmitriid.comGitHubLinkedIn
Re[10]: php - распарсить html
От: anonymous Россия http://denis.ibaev.name/
Дата: 30.09.04 08:52
Оценка:
Здравствуйте, Andir, Вы писали:

A>Я вообще слабо себе представляю задачу в которой я бы выбирал хранить ли файлы в БД или в файловой системе, об этом даже вопрос вставать не должен, а иначе пора заниматься теорией.


кэш уже обработанных файлов...

A>З.Ы. Товарищ DSD в свете скорого выхода новой версии SQL сервера Yukon, ваши доводы о скорости файловой системы оказываются безосновательными.


веб-приложение с использованием Yukon, вы гурман, товарищ Andir... )
Re[5]: FCKeditor
От: Кодт Россия  
Дата: 30.09.04 09:19
Оценка:
Здравствуйте, Mamut, Вы писали:

M>FCK Editor. Обещают поддержку и Мозиллы.

Супер!
А я недавно ещё один видел, в Постнюке.
Вот пример его работы (вне постнюка) http://www.latinotek.com/script/
Перекуём баги на фичи!
Re[11]: php - распарсить html
От: Andir Россия
Дата: 30.09.04 09:42
Оценка:
Здравствуйте, anonymous, Вы писали:

A>>Я вообще слабо себе представляю задачу в которой я бы выбирал хранить ли файлы в БД или в файловой системе, об этом даже вопрос вставать не должен, а иначе пора заниматься теорией.


A>кэш уже обработанных файлов...


И? Кэш обработанных файлов стоит закинуть в БД? В иерархическую или реляционную?

A>>З.Ы. Товарищ DSD в свете скорого выхода новой версии SQL сервера Yukon, ваши доводы о скорости файловой системы оказываются безосновательными.


A>веб-приложение с использованием Yukon, вы гурман, товарищ Andir... )


Ещё какой ...
Собственно в чём проблема? Новая версия Sql сервера не является чем-то типа Космического аэродрома типа Байконур, а web-приложения бывают не такие и слабенькие, что для них сгодится и файловая система ... Тонкие клиенты нонче не редкость.

P.S. Старая уже дискуссия, сейчас бы доводы уже немного выросли в цене

C Уважением, Andir!
Re[6]: FCKeditor
От: anonymous Россия http://denis.ibaev.name/
Дата: 30.09.04 09:54
Оценка: 81 (3)
Здравствуйте, Кодт, Вы писали:

M>>FCK Editor. Обещают поддержку и Мозиллы.

К>Супер!
К>А я недавно ещё один видел, в Постнюке.
К>Вот пример его работы (вне постнюка) http://www.latinotek.com/script/

HTMLArea
Re[12]: php - распарсить html
От: anonymous Россия http://denis.ibaev.name/
Дата: 30.09.04 10:01
Оценка:
Здравствуйте, Andir, Вы писали:

A>>>Я вообще слабо себе представляю задачу в которой я бы выбирал хранить ли файлы в БД или в файловой системе, об этом даже вопрос вставать не должен, а иначе пора заниматься теорией.

A>>кэш уже обработанных файлов...
A>И? Кэш обработанных файлов стоит закинуть в БД? В иерархическую или реляционную?

извиняюсь... я невнимательно прочёл твой пост...

A>>>З.Ы. Товарищ DSD в свете скорого выхода новой версии SQL сервера Yukon, ваши доводы о скорости файловой системы оказываются безосновательными.

A>>веб-приложение с использованием Yukon, вы гурман, товарищ Andir... )
A>Ещё какой ...
A>Собственно в чём проблема? Новая версия Sql сервера не является чем-то типа Космического аэродрома типа Байконур, а web-приложения бывают не такие и слабенькие, что для них сгодится и файловая система ... Тонкие клиенты нонче не редкость.

да собственно мы речь то ведём о той системе, которую собрался строить Кодт... думаю с Yukon'ом ему совсем не по пути...

A>P.S. Старая уже дискуссия, сейчас бы доводы уже немного выросли в цене
Re[10]: php - распарсить html
От: anonymous Россия http://denis.ibaev.name/
Дата: 30.09.04 10:07
Оценка:
Здравствуйте, lozzy, Вы писали:

L>Привожу простой пример, показывающий несостоятелность ФС-варианта:

L>Допустим у нас 1 запись на 1 файл. Допустим они (данные) хранятся в определенном формате. Допустим надо вывести название, скажем, каждого продукта, который хранится в файле.
L>Вопрос: насколько быстрее будет выбрать данные из базы нежели открывать каждый файл и выцарапывать оттуда название ?

можно просто создать файл со всеми названиями продукта — своеобразный индекс...

L>И таких вариантов — вагон и маленькая тележка.
Re[7]: FCKeditor
От: Mamut Швеция http://dmitriid.com
Дата: 30.09.04 11:22
Оценка:
Здравствуйте, anonymous, Вы писали:

A>Здравствуйте, Кодт, Вы писали:


M>>>FCK Editor. Обещают поддержку и Мозиллы.

К>>Супер!
К>>А я недавно ещё один видел, в Постнюке.
К>>Вот пример его работы (вне постнюка) http://www.latinotek.com/script/

A>HTMLArea


Это конечно оффтоп и флейм, но вот людям делать нечего! : )


dmitriid.comGitHubLinkedIn
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.