К основному контенту

Базы данных, оптимизация обработки данных

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 в память. Это сильно увеличит скорость чтения данных. и никак не повлияет на скорость выборки.

Комментарии

Популярные сообщения из этого блога

Русская кодировка ASCII, ANSI и UTF-8, windows-1251 (CR, LF, CR LF)

Что нужно знать: Encoding – это кодировка для вывода данных (UTF-8, windows-1251) Line Endings – формат строк (CR, LF, CR LF) Byte Order Marker (BOM) – системная область в начале файла. LF – используется в UNIX вместе с кодировками UTF-8 или windows-1251 CR – используется в MAC системах. на сервере лучше использовать кодировку ANSI это и есть кириллица (Windows), символ занимает 1 байт (оптимизированный ASCII) UTF-8 может содержать заголовок BOM который содержит системную информацию, символ занимает 2 байта wysiwyg редакторы добавляют метатег в html страницы с кодировкой кирилицы. это не очень хорошо, если сервер настроен на UTF-8, в этой кодировке корректно работают некоторые библиотеки приложения и прочие

Как узнать время включения/выключения компьютера.

Способов масса, одни из них: в журнале событий windows  выбрать eventlog, теперь в таблице легко найти события с кодами: 6005 - событие остановки eventlog - компьютер выключился 6006 - событие запуска eventlog - компьютер включился обычно эта служба запускается и остонавли во время включения/выключения компьютера, и пишет в журнале событий системы код события и время.

Извлечение, редактирование и публикация файлов в SharePoint

Теги: Sharepoint в sharepoint designer на ленте за извлечение / редактирование или отмену извлечений отвечают кнопки  в браузере это выглядит по другому   файл извлечен и пока редактируется пользователем   страница с индивидуальным дизайном возврат страницы с индивидуальным дизайном к определению узла (к первоначальному виду не изменяя веб-части) Возврат извлеченной страницы с отменой всех внесенных изменений Изначально извлечение было создано для исключения конфликтов при редактировании файлов. Например если один пользователь открыл документ и редактирует, то второй не сможет открыть пока первый не вернет документ на место. Простыми словами извлечение значит, что пользователь забирает документ для редактирования. И возвращает после окончания редактирования. Само редактирование может выполняться и без подключения к сети, документ хранится в черновиках моих документов. В официальной документации сказано: Извлечение файлов позволяет избежать ситуации, когда несколь