XML формат идеально подходит для хранения любых данных. недостаток: медленная обработка.
Для быстрого чтения можно использовать xmlReader (пример) - читает XML без загрузки в память.
Для быстрой записи XMLWriter аналогично.
Для работы с XML есть упрощенный модуль SimpleXML, актуален если файлы маленькие, быстрее и проще чем SAX.
Примеры совместного использование здесь
xmlReader работает с DOM, DOM можно импортировать в SimpleXML.
Если файлы большие то SimpleXML будет работать очень медленно, например 10000 элементов в XML будет обрабатываться 1 секунду и больше.
Для больших файлов надо использовать Simple API for XML (SAX) - идеальный вариант.
либо xmlReader.
Работая с XML, складывается картинка многих проблем любых систем баз данных.
проблема любой системы БД - скорость обработки.
Чаще всего проблема в последовательной обработке (например прочитать 30000ую строку)
файлы читаются от начала, по этому чтобы достичь этой строчки алгоритм перескакивает последовательно на следующую строчку и в момент достижения нужной строки алгоритм читает ее целиком.
Теперь задумайтесь над чтением 30000000ой строкой, а если запрос сделан 100 раз сразу?...
Реляционные базы решают эти задачи и проблемы, но возникает множество других проблем.
Проблемы реляционных баз данных в том, что они не подходят для хранения любой информации (приходится программировать скрипты)
Для увеличения скорости обработки данных идеально подойдет MySQL.
MySQL используют для хранения таблиц с элементами малой величины.
Величина элементов вычисляется и является относительной к скорости работы связанных скриптов. Разработчики советуют в главной базе не делать элементы больше 255 Байт (255*2 Байт).
Размер элементов влияет на размер самой таблицы в базе данных, таблица базы данных загружается целиком в память, скорость остается прежней.
Для сайтов без оптимизации чтения/записи файлов подходит вариант использования MySQL в качестве индексной базы которая указывает на файлы сайта (html,xml,php,jpg)
Если все файлы помещаются в памяти, их можно загрузить и в MySQL в память. Это сильно увеличит скорость чтения данных. и никак не повлияет на скорость выборки.
Для быстрого чтения можно использовать xmlReader (пример) - читает XML без загрузки в память.
Для быстрой записи XMLWriter аналогично.
Для работы с XML есть упрощенный модуль SimpleXML, актуален если файлы маленькие, быстрее и проще чем SAX.
Примеры совместного использование здесь
xmlReader работает с DOM, DOM можно импортировать в SimpleXML.
Если файлы большие то SimpleXML будет работать очень медленно, например 10000 элементов в XML будет обрабатываться 1 секунду и больше.
Для больших файлов надо использовать Simple API for XML (SAX) - идеальный вариант.
либо xmlReader.
Работая с XML, складывается картинка многих проблем любых систем баз данных.
проблема любой системы БД - скорость обработки.
Чаще всего проблема в последовательной обработке (например прочитать 30000ую строку)
файлы читаются от начала, по этому чтобы достичь этой строчки алгоритм перескакивает последовательно на следующую строчку и в момент достижения нужной строки алгоритм читает ее целиком.
Теперь задумайтесь над чтением 30000000ой строкой, а если запрос сделан 100 раз сразу?...
Реляционные базы решают эти задачи и проблемы, но возникает множество других проблем.
Проблемы реляционных баз данных в том, что они не подходят для хранения любой информации (приходится программировать скрипты)
Для увеличения скорости обработки данных идеально подойдет MySQL.
MySQL используют для хранения таблиц с элементами малой величины.
Величина элементов вычисляется и является относительной к скорости работы связанных скриптов. Разработчики советуют в главной базе не делать элементы больше 255 Байт (255*2 Байт).
Размер элементов влияет на размер самой таблицы в базе данных, таблица базы данных загружается целиком в память, скорость остается прежней.
Для сайтов без оптимизации чтения/записи файлов подходит вариант использования MySQL в качестве индексной базы которая указывает на файлы сайта (html,xml,php,jpg)
Если все файлы помещаются в памяти, их можно загрузить и в MySQL в память. Это сильно увеличит скорость чтения данных. и никак не повлияет на скорость выборки.
Комментарии
Отправить комментарий