Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

файловые базы данных

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> файловые базы данных
Имя
Сообщение << Старые топики   Новые топики >>
файловые базы данных - 2010-03-15 10:54:58.990000   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
часто встречаю базы данных файловые, в которых всё хранится вот в таком вот виде
a:17:{s:18:"__sape_delimiter__";s:8:". &lt;br /&gt;";s:6:"/?p=20";a:2:{i:0;s:87:"";i:1;s:105:"";}s:7: и т.д. интересно как это реализовано?
Post #: 1
RE: файловые базы данных - 2010-03-15 11:10:06.943333   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
Структура?

Ну сравни с тем что на выходе и разберись)

Подобная запись, например, встречается в движке IPB, в таком виде хранятся результаты голосований
Post #: 2
RE: файловые базы данных - 2010-03-15 12:16:50.186666   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
я знаю только то что это массив, но как его так записали хз.
Post #: 3
RE: файловые базы данных - 2010-03-15 12:53:00.943333   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
Ты вообще о чём? Записали его тем же fwrite, если это файловая бд, но главное-то тут алгоритм чтения этой записи. Примерно узнать можно, если посмотреть на выходные данные.
Post #: 4
RE: файловые базы данных - 2010-03-15 13:01:15.263333   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
http://ru2.php.net/serialize
Post #: 5
RE: файловые базы данных - 2010-03-15 13:01:30.973333   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
так дело в том, что я слишком часто именно такой алгоритм встречаю … при чём в абсолютно разных цмсках.. уже хз скоко раз встречал… я думаю это генерирует какая-то стандартная функция. не могут же все програмеры думать одинаково)))
хотя хз. у орба в менеджере шелов такой же алгоритм
Post #: 6
RE: файловые базы данных - 2010-03-15 14:56:34.093333   
Agent Smith

Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
Уважаемый пользователь с нечитаемым ником, где вы тут увидели файловую БД? Это простой массив но только сериализированный, как верно подметил орб. Такая форма записи используется для хранения больших массивов в Майскьюл (что бы не создавать ячейку для каждого элемента, можно создать 1 ячейку и хранить переведенную вами запись). Также такой массив очень легко передавать методом пост/гет или XML-кой, когда не хочется играться с большим количеством передаваемых элементов.
Файловая БД имеет такой вид:
1|Vasya|Sidorov|
2|Kolya|Perov|
3|Tolya|Ivanov|
Это все в файле. После того как мы прочитали его содержание, идет построчное чтение, функцией file. В итоге получаем массив записей, каждая из которых отвечает новой строке файла. А дальше каждую строку или элемент полученного массива explode-им с делимитером "|" или любым другим, какой автор захочет. В итоге получим двухуровневый массив.
Полученный массив можно serialize и передавать куда нужно.

Post #: 7
RE: файловые базы данных - 2010-03-16 10:31:26.483333   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
Agent Smith
разочарую тебя.. файловая бд может иметь абсолютно любой формат и вид. его задаёт пользователь. а вот сериалайз это именно то что мне надо было .
орб спс это то что я и искал :)
Post #: 8
RE: файловые базы данных - 2010-03-16 15:40:24.220000   
Agent Smith

Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
Я просто привел пример одного из вариантов. Я хотел показать, в файловой бд все данные разделены делимитерами.
Post #: 9
RE: файловые базы данных - 2010-03-16 22:36:30.110000   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
Совсем не обязательно. Если поля имеют фиксированную длину или перед каждым полем записана его длина, то разделители не нужны.
Post #: 10
RE: файловые базы данных - 2010-03-17 11:17:27.583333   
Agent Smith

Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
quote:

ORIGINAL: oRb

Совсем не обязательно. Если поля имеют фиксированную длину или перед каждым полем записана его длина, то разделители не нужны.

Я согласен, что это весьма возможно, одако малоэфективно.
Если по каким-то причинам в базу попадет запись, которая больше нужного размера или меньше, то у вас из за одной записи полетит абсолютно вся база начиная с той позиции, где поизошел сбой.
Используя делимитеры, вы рискуете потерей информации только в приделах одной строки (максимум двух:D)
Кроме того разрезать файл(имеется в виду содержание ) по делимитерам на много быстрее и проще чем читать файл по символьно.
Post #: 11
RE: файловые базы данных - 2010-03-17 12:35:31.683333   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
quote:

Если по каким-то причинам в базу попадет запись, которая больше нужного размера или меньше, то у вас из за одной записи полетит абсолютно вся база начиная с той позиции, где поизошел сбой.
это будет означать, что программист не провел должную проверку данных, прежде чем записать их в файл.
quote:

Кроме того разрезать файл(имеется в виду содержание ) по делимитерам на много быстрее и проще чем читать файл по символьно.
а накой читать из файла посимвольно?

Посмотрите как хранятся данные у mysql, расположенные в @@datadir
Post #: 12
RE: файловые базы данных - 2010-03-18 10:51:19.660000   
Agent Smith

Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
А вы никогда не слышали о сбоях в серверном ПО? Кроме того, даже самый опытный специалист может допустить ошибку.
 
А на счет MySQL, то я не хочу затрагивать эту тему. Это - отдельный разговор. Скажу лишь, что файловая БД работает быстрее чем MySQL.
Post #: 13
RE: файловые базы данных - 2010-03-18 12:21:33.890000   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
не согласен. проведи поиск типа LIKE по файловой бд (которая в принципе не имеет индексов) и сравни с аналогичным поисков по полю типа varchar индексированому мусклем. из базы ну хотябы в 10ккк записей
согласно моим подсчётам файловая бд справляется за 5-30 секунд(бывает обрывает стэк с апачем и не успевает найти вообще), а у мускля на это уходит 1.2 секунды

может быть конечно мой алгоритм поиска не совершенен был но разница на лицо…
файловая база выигрывает очень слиьно на небольших объёмах инфы, где скорость открытия стэка с базой данных может превышать скорость поиска по базе даных в несколько раз. ну или быть хотябы сопоставимой. во всех иных случаях файловая бд проигрывает…

попробуй сделать комплексный поиск хотябы в связке 2-х файлов и оцени скорость поиска. та даже по 2-м полям одного файла поиск попробуй сделать. увидиш колосальную разницу

так что утверждение что файловая база быстрее далеко не всегда верное. для разных задач надо использовать разные базы
Post #: 14
RE: файловые базы данных - 2010-03-18 14:30:41.880000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: Agent Smith
А вы никогда не слышали о сбоях в серверном ПО? Кроме того, даже самый опытный специалист может допустить ошибку.

Просто нефиг пользоваться на сервере бета-софтом, и не стоит забывать про бекапы. Это по-любому приятнее, чем ориентироваться в ТЗ на бажность бд. Не, ну при таком подходе, надо ещё учесть вероятность того, что драйвер файловой системы в ядре бажный, и фс может в любой момент полететь, и поэтому вместо файлов использовать пустой раздел без всяких фс в качестве одно непрерывного массива данных. Кстати это будет быстрее, чем получать данные с диска посредством фс.
Post #: 15
RE: файловые базы данных - 2010-03-18 14:45:03.043333   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
quote:

А вы никогда не слышали о сбоях в серверном ПО?
Да, и?
quote:

Кроме того, даже самый опытный специалист может допустить ошибку.
Согласен, и?
quote:

Скажу лишь, что файловая БД работает быстрее чем MySQL.
это можно утверждать проделав тесты для разных операций, на разных объемах данных. Все зависит от реализации.
Я лишь опровергнул фразу:
quote:

Я хотел показать, в файловой бд все данные разделены делимитерами.

Не сбивайтесь с курса.
Post #: 16
RE: файловые базы данных - 2010-03-18 18:33:39.830000   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
quote:

ORIGINAL: Agent Smith

А на счет MySQL, то я не хочу затрагивать эту тему. Это - отдельный разговор


ну стартани новый топик да затронь. чего мусолить-то?
Post #: 17
Страниц:  [1]
Все форумы >> [Веб-программинг] >> файловые базы данных







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.