Автор будет очень признателен, если Вы кликнете по одной из белых ссылок выше.
Вам это ничего не стоит, а автору сайта будет приятно ;)
Найдено страниц: 41 [показано 10]
Файлы vs базы данных.
Степень соответствия запросу: 59,41%
Фрагменты текста поста : ... Файлы vs базы данных... ... В последнее время все чаще нахожу в интернете статьи, которые расхваливают сайтовые движки, созданные без использования баз данных , т... ... сохраняющие данные в файлах... ... Непонятно почему, но народ истово верит в то, что именно такой подход (отказ от использования систем управления базами данных и хранение данных в файлах) дает гораздо большую производительность... ... автор скрывает исходники, шифруя все в байт-код с помощью Zend-Guard), но общие выводы можно сделать просто проанализировав содержимое файлов, хранящих статистические данные... ... Пользователям скриптов других производителей, также использующих файлы в качестве хранилища данных этот пост также должен быть интересен... ... Нам гораздо важнее узнать, насколько оптимально использовать для этой работы файлы и действительно ли это быстрее, чем работа с базой данных... ... Особенность хранения данных Lasto-блогом такова, что статистика хранится в нескольких файлах: hits... ... db — данные о хитах (метка времени хита, IP-адрес источника, User-Agent клиента, хост источника, страница сайта к которой обратился клиент)... ... Странно, что Lasto не встроил какого-либо культурного просмотрщика и анализатора этих ценных данных... ... db — данные об обращениях RSS-ридеров... ... В данный момент нам эта инфа не интересна... ... В нем хранятся те данные, которые выводятся на странице статистики блога... ... Будем анализировать работу именно с этим файлом... ... Структура такова: allsein — данные о заходах с поисковиков по разным запросам хост | искомая фраза дата, количество заходов... ... agent — данные о броузерах и ботах user-agent броузера дата, количество заходов... ... pages — данные о посещенных страницах страница дата, количество заходов... ... rss_agent — данные о запросах от RSS-ридеров user-agent ридера дата, количество заходов... ... source — данные об источниках трафика URL страницы-источника дата, количество заходов... ... В первом «разделе» (данных о поисковиках и искомых фразах) разделителем данных является символ вертикальной черты... ... Случаи когда с данной поисковой машины еще не было посетителей и нужно создавать целую ветку массива рассматривать не будем... ... тут затронута обработка данных только из одного «раздела» статистики (а ведь скрипт еще должен скорректировать данные и в остальных), не описан блок, который проверяет доступность сайта для данного юзер-агента и хоста-источника (а он жрет времени тоже немало), не учтены потери на выделение/освобождение памяти и копирование целых веток массива, если автор решил (для упрощения программирования) отделить часть массива например так: Пример кода $as = $ar['allsein']... ... // выделяем данные о заходах с искалок в отдельный массив Все это уже не столь важно... ... Да, да, я знаю о кэшировании файлов... ... Для данного примера также будем рассматривать работу только с одним «разделом» статистики — данных о поисковых запросах... ... Скрипт должен получить данные из базы о количестве хитов «за сегодня»... ... Но, в отличии от ранее рассмотренного варианта работы файлового движка, здесь размер этих файлов в десятки раз меньше... ... А итог таков, что пусть мы и поимеем потери на чтении/сохранении индексных файлов все равно получаем примерно тысячекратный прирост в скорости в сравнении с файловым движком... ... :-) %%%базы данных, файловые движки, CMS, оптимизация скорости работы%%%... Подробнее: http://fit-media.com/post_1222679684.htmlAJAX — WEB 2.0 за 5 минут
Степень соответствия запросу: 10,92%
Фрагменты текста поста : ... наш контейнер, в который мы и будем загружать данные... ... Но эти данные кто-то должен предоставить... ... Ему в качестве параметра передается URL, с которого необходимо получить данные... ... Гораздо чаще встречается ситуация, когда нужно отправить серверу какие-то данные и получить ответ, который, затем необходимо всунуть в контейнер... ... Решается эта задача так же просто, но сперва давайте создадим серверный скрипт, который будет получать данные с нашей страницы и отправлять ответ... ... > Мы будем отправлять данные (введенное имя) в скрипт методом POST (а почему бы и нет... ... К тому же далеко не всегда полученные данные нужно тупо поместить в контейнер, гораздо чаще требуется провести еще кое-какую обработку полученной информации уже на стороне клиента... ... передает данные на сервер и получает ответ, но при этом он не изменяет содержимое DOM... ... Вместо этого он позволяет создать функцию-обработчик полученных данных... ... считывать данные из полей, этим займется метод serialize(), который сам соберет все данные из формы и упакует их в формат, понятный для метода post()... ... Вместо этого он принимает третьим параметром функцию, которая будет обрабатывать полученные с сервера данные... ... Теперь, если вам нужно передать на сервер больше данных, то просто добавьте в форму сколько угодно полей различных типов (радио-кнопки, текстовые области, пароли, чек-боксы)... ... фреймворк сам определит количество и типы полей и сам соберет из них данные для отправки... ... Он упрощает отправку данных на сервер до предела &mdash... ... вам вообще ничего не придется программировать :) Не станем здесь городить огород с реальной загрузкой файлов, просто выведем данные о загруженном файле... ... html - загрузка файлов <... ... Первая будет вызвана перед началом отправки данных (в данном примере она покажет alert-окно с надписью 'start uploading'), а вторая &mdash... Подробнее: http://fit-media.com/post_1262093659.htmlСтатичные файлы vs скрипты. Невидимое зло.
Степень соответствия запросу: 6,31%
Фрагменты текста поста : ... Например, многие современные CMS грешат тем, что хранят в БД те данные, которым там совсем не место - шаблоны страниц, стили и т... ... Ведь система однопользовательская и кроме вашей софтины (грубо говоря) ничего на данный момент не выполняется... ... Сторонники хранения стилей в базе данных приводят два (весьма спорных) аргумента в защиту такого подхода... ... Во-вторых, возможность редактирования файлов через админку вовсе не обязует хранить данные в БД &mdash... ... дайте пользователю возможность редактирования через админку стилевых файлов на сервере и обращения к БД (как и бесполезные вызовы скриптов) больше не нужны... ... В сети существует (опять же весьма спорное) мнение, что отправка стилей одним файлом происходит быстрее, чем отправка пачки мелких стилевых файлов... ... несколько файлов будут передаваться параллельно и, если какой-то из них где-то вдруг застрянет, то клиенту не придется ждать &mdash... ... Снова вэб-сервер, вместо тупой отправки готовых файлов, будет вынужден запускать PHP-скрипты, которым придется производить кучу работы (почти такой же объем вычислений, как при генерации страницы... ... парсить запрос, определять из каких именно шаблонов состоит страница (а для этого придется вызывать все модули, формирующие контент данной страницы, которые, в свою очередь, будут парсить запрос или шаблоны, рыться в БД и т... ... ), собирать в кучу (опять же скорее всего из БД) отдельные куски стилевых файлов, клеить их в один и только потом отправлять клиенту... ... И с первого раза... Подробнее: http://fit-media.com/post_1283692130.htmlГрамотный интерфейс: поля ввода
Степень соответствия запросу: 6,17%
Фрагменты текста поста : ... Грамотный интерфейс: поля ввода Очень часто в программах данные вводятся в формах, содержащих множество полей: поле фамилии, имени, адреса, номера паспорта, размера обуви... ... Гораздо лучше изначально создать такие условия ввода данных, чтобы подобные ошибки просто не возникали... ... Наиболее популярное на данный момент - разбить форму с десятком полей ввода на несколько форм, по два-три поля в каждом... ... Для интернета это оказывается удобным, но в оффлайновых программах, где вводимых данных гораздо больше, возникает масса проблем: необходимо предусмотреть в каждой следующей форме отображение введенных данных из предыдущих форм, чтобы пользователь мог видеть, что он уже ввел ранее... ... для изменения ранее введенных данных (например неверно введенной фамилии) необходимо сделать в формах навигацию "вперед - назад"... ... Определимся с задачей Нам нужно, чтобы интерфейс каким-то образом подсказывал пользователю, что именно от него (пользователя) требуется в данный момент... ... Суть состоит в том, что для ввода новой записи в базу и для редактирования уже введенной записи как правило используется одна и та же форма... ... Так вот, если во время редактирования придать фону формы какой-нибудь оттенок (например сделать ее слегка красноватой), то пользователь, занимающийся только вводом новых данных, сразу же заметит это изменение цвета и не введет по ошибке новые данные поверх старых... ... Ну и чтоб поставить жирную точку в вопросе путаницы при вводе и редактировании данных опишу еще одно простое, но очень полезное улучшение интерфейса... Подробнее: http://fit-media.com/post_1205142560.htmlИдея глобального контента
Степень соответствия запросу: 5,06%
Фрагменты текста поста : ... Идея глобального контента Как хранить данные в БД... ... По теме проектирования баз данных написано множество книг и статей, но все они содержат больше технической информации (описания систем индексации, поиска и связывания таблиц) и предлагают дробить всю информацию на множество таблиц, не забыв склеить все это в тугой узел с помощью связей (relations) и зависимостей... ... Список полей: Уникальный идентификатор ( id ) Идентификатор статьи с в блоге, к которой относится данный комментарий ( parent_id ) Заголовок ( title ) Собственно текст ( content ) Идентификатор автора ( user_id ) Дата создания ( created ) Флаг промодерированности ( published ) Как видим, поля всё теже, что и для статичной страницы, отличие лишь в количестве... ... Проанализировав описанное выше, можно легко сделать вывод, что при проектировании CMF логично создать всего одну (большую) универсальную таблицу в базе данных для хранения практически любого вида контента... ... При этом для разработчиков модулей можно упростить многие рутинные операции, такие как, программирование ввода одних и тех же данных в разных модулях ( created , modified , title , decsription , keywords и т... ... Разработчику модуля нужно лишь сообщить системе, какие именно поля будет использовать его модуль и система сама сможет создать все необходимые формы для ввода/редактирования данных, с необходимой валидацией... ... Так же этот вариант хранения данных позволяет сделать "... ... %%%контент сайта, проектирование CMF, виды контента CMS, базы данных,  ... Подробнее: http://fit-media.com/post_1242742678.htmlЕсли не хочется кусать локти
Степень соответствия запросу: 3,94%
Фрагменты текста поста : ... Случайное удаление нужных файлов, форматирование раздела, вирусы... ... Именно человеческая лень чаще всего служит причиной отсутствия резервной копии данных... ... Наилучший вариант — создание копии важных данные на сменных носителях... ... Если в вашей системе установлено несколько винчестеров и оригинальные (важные) данные расположены на первом из них, то копия всегда должна быть расположена на втором, третьем, четвертом винчестере, но только не на том, где лежит оригинал... ... Если винчестер выйдет из строя, то информации вы все равно лишитесь, но такой вариант все же позволит вам в некоторых случаях спасти данные... ... В этом случае копия данных должна располагаться в отдельной папке... ... Пояснять тут нечего — если уничтожите оригинал, то сможете поднять данные из резервной папки, но любое более серьезное происшествие (вирус, форматирование, выход из строя носителя) практически 100%-но лишит вас и оригинала и копии... ... Для резервирования данных создана масса специальных программ-бэкаперов — пару минут общения с любым поисковиком и вы найдете ссылки на десятки примеров такого софта... ... Есть даже одна, встроенная прямо в Windows ( Пуск — Программы — Стандартные — Служебные — Архивация данных )... ... В результате этой простой операции у вас на рабочем столе появится ярлычек, кликнув по которому вы запустите полностью автоматический процесс создания резервной копии всех файлов Microsoft Excel из папки texts диска C:... ... Перед копированием так же автоматически будет сделана очистка папки архива от старых файлов... ... Итак, условимся, что оригинальные данные находятся в папках c:\texts\ , c:\private\passwords\ и d:\work\prikaz\... Подробнее: http://fit-media.com/post_1203529769.htmlMySQL: MyISAM хотят заменить на новый движок Maria
Степень соответствия запросу: 3,47%
Фрагменты текста поста : ... MySQL: MyISAM хотят заменить на новый движок Maria Инициативная группа MySQL AB Maria, состоящая из шести человек и возглавляемая Michael "Monty" Widenius (создатель MySQL и MyISAM), выпустила тестовую версию нового движка хранения данных Maria... ... Движок Maria - это расширенная версия MyISAM, которая поддерживает весь основной функционал MyISAM и в дополнение к этому предлагает: поддержку восстановления данных после сбоев (data auto-recovery, crash safe), полное логирование (включая операции CREATE, DROP, RENAME и TRUNCATE) и новый формат строк PAGE... ... X Основные замечания касательно сравнения Maria и MyISAM Преимущества перед MyISAM Восстановление данных и индексов после сбоев Откат, после сбоя, в предыдущее состояние или к состоянию после последней команды LOCK TABLES Полное логирование операций, включая: CREATE/DROP/RENAME/TRUNCATE TABLES, LOAD DATA INFILE, SELECT... ... INSERT и INSERT (множество строк), ALTER TABLE LOAD INDEX может пропускать неиспользуемые индексные блоки Новый блочный формат строк, в котором данные хранятся ввиде страниц При использовании блочного формата строк (выбираемого теперь по умолчанию) строковые данные могут кешироваться Блочные тесты большинства элементов Поддержка как отказоустойчивых (crash safe, транзакциональных) так и нетранзакциональных таблиц... ... ) TRANSACTIONAL=0|1 PAGE используется только для тказоустойчивого/транзакционального строкового формата PAGE формат должен дать заметное увеличение скорости на системах с плохим кешированием данных... ... (К примеру Windows) Отличия от MyISAM Использование больших (1GB по умолчанию) лог файлов Использование контроля за логами (maria_log_control) и файлов логов (maria_log... ... Не поддерживается INSERT DELAYED Не поддерживается кеширование составных ключей Устранение недостатков до следующих релизов Хранение очень малых строк Не поддерживаются MERGE таблицы Различия, которые вероятно не будут устранены Страницы данных в блоковом формате увеличивают размеры: 10 байт на страницу и 5 байт на строки... ... Транзакции и поддержка конкурирующих записей приведут к увеличению: 7 байт на новые строки, 14 байт для удаленных строк Отсутствие внешнего блокирования (MyISAM имеет внешнее блокирование, но оно редко используется) Использование одинакового размера страниц для индекса и данных... ... MyISAM поддерживает различные размеры страниц для индексов Индексный номер требует один экстра байт на индексную страницу Не поддерживается внутренний MySQL RAID (выключен и в MyISAM) Минимальный размер файла данных формата PAGE 16К (со страницей на 8K) Обзор Maria:... Подробнее: http://fit-media.com/post_1202730586.htmlМаксимум производительности
Степень соответствия запросу: 2,08%
Фрагменты текста поста : ... Например, производительность работы человека увеличивается, если все необходимые данные находятся "... ... Один из методов решения этой проблемы - предварительная загрузка данных... ... Так как заранее неизвестно, какие именно данные потребуются, может возникнуть необходимость загрузки большого объема данных, которые никогда не будут использованы - вот вам и противоречие между производительностью человека и компьютера... ... Три операции, которые можно упростить Работая на компьютере, пользователи выполняют три основных операции: Принимают решения на основе информации, касающейся текущей задачи Собирают данные, необходимые для выполнения текущей задачи Манипулируют компьютером с помощью элементов управления Например, пользуясь автомобилем, пользователи вначале решают, куда они хотят ехать... ... Если рассмотреть каждый из этих шагов, уменьшая количество решений, которые необходимо принимать человеку, позволяя компьютеру самому собирать данные, и уменьшая количество манипуляций, необходимых для достижения цели, то производительность человека при работе с компьютером значительно увеличится... ... Уменьшение необходимости ввода данных Следующие методы могут увеличить производительность ввода данных, уменьшая количество необходимой для ввода информации: Автоматически заполняйте поля новой записи значениями предыдущей... Подробнее: http://fit-media.com/post_1207048697.htmlВсе ли CMS одинаково полезны?
Степень соответствия запросу: 1,59%
Фрагменты текста поста : ... Четвертый недостаток - использование баз данных... ... Кроме того, если сайт может обходиться без использования БД, то резервное копирование сводится к простому копированию файлов с сервера (обычному скачиванию, которым каждый из нас занимается чуть ли не каждый день)... ... Было бы очень здорово, если бы движку можно было подсунуть любой (ну или почти любой) PHP-файл и он (движек) смог бы с этим файлом нормально ужиться... ... И вот, что я хочу от него добиться: Максимальная оптимизация под поисковые системы ("управляемое" расположение контента в странице, облегченный дизайн, генерация псевдо-статических страниц) Минимальные размеры как движка, так и хранимых на сервере данных... ... Оптимизация всех операций, кэширование, индексация данных для ускоренного доступа... ... Отсутствие необходимости использования баз данных (MySQL)... ... Все данные будут храниться в обычных файлах на сервере... Подробнее: http://fit-media.com/post_1200405197.htmlЗалепа №13. О грамотном проектировании и неграмотном IDE.
Степень соответствия запросу: 1,04%
Фрагменты текста поста : ... Задача: Есть некая программа, работающая с базами данных... ... Каждая запись справочника содержит данные об одном пользователе: его логин, пароль для входа в систему и какие-то дополнительные атрибуты... ... Здравый смысл подсказывает, что справочник должен быть представлен неким классом (назовем его CUserMgr ), который позволяет основной программе получить все необходимые данные о пользователе и скрывает всю внутреннюю структуру внутри себя... ... Решение сводится к созданию классов, представляющих сущности используя в качестве базы класс формы... ... Причем этот класс должен быть порожден от класса Form , чтобы он мог отобразить себя для редактирования данных пользователя... ... } // загрузка и сохранение данных о пользователе public bool Load() {... Подробнее: http://fit-media.com/post_1204892317.html
