© 2008 www.yoursait.ru mail: admin [at] yoursait.ru
Как пользоваться системой сбора статистики Awstats...далее
 
 
 
 
 
Краткое описание языков PHP, PERL, Ruby on Rails...далее
Основы Эл. Почты. Преимущества и возможности...далее
Управление веб-сервером Apache с помощью механизма .htaccess ..далее
Оптимальное использование MySQL...далее
Резервное копирование баз MySQL..далее
Полезные статьи :
Хостинг, использование хостинга, советы новичкам.
 
Новости :
США лидируют по количеству сайтов с вредоносным ПО

Процентное содержание электронных писем с вредоносными вложениями в почтовом трафике (график Sophos)
Согласно представленным данным, в уходящем году больше всего сайтов с вредоносным программным обеспечением — 37% — располагалось на американских серверах. Второе место в рейтинге Sophos занимает Китай, на долю которого пришлось 27,7% потенциально опасных веб-страниц. Замыкает тройку антилидеров Россия с 9,1% от общего количества сайтов с вредоносным ПО. Далее в порядке убывания числа вредоносных ресурсов в списке Sophos следуют Германия (2,3%), Южная Корея (2,1%), Украина (1,8%), Великобритания (1,7%), Турция (1,5%), Чешская Республика (1,3%) и Таиланд (1,2%). Меньше всего опасных сайтов в Сингапуре — 0,3%.

Компания Sophos также отмечает, что в уходящем году Соединенные Штаты лидировали и по объемам распространяемого спама. Сегодня через компьютеры на территории США рассылается 17,5% всех спам-писем. Некоторое сокращение объемов спама было отмечено в конце осени в связи с закрытием американского хостинг-провайдера McColo, на ресурсах которого работали командные центры нескольких крупнейших ботнетов.
Согласно исследованию Sophos, мошенники все чаще атакуют пользователей социальных сетей, а количество писем с вредоносными вложениями за год выросло в пять раз. Вместе с тем в 2008 году одним из основных инструментов распространения вредоносных программ стали съемные носители.
Оптимальное использование MySQL
Вместе с тем следует помнить, что существуют операции, выполнение которых само по себе требует больших ресурсов, чем для обычных запросов. Например, использование операции DISTINCT к функции SELECT вызывает потребление гораздо большего количества процессорного времени, чем обычный SELECT. DISTINCT пытается искать уникальные значения, зачастую производя множество сравнений, подстановок и расчетов. Причем, чем больше становится объем данных, к которому применяется DISTINCT (ведь Ваша база со временем растет), тем медленее будет выполняться такой запрос и рост ресурсов, требуемых для выполнения такой функции, будет происходить не прямо пропорцонально объему хранимых и обрабатываемых данных, а гораздо быстрее.

Индексы

Индексы используют для более быстрого поиска по значению одного из полей. Если индекс не создается, то MySQL осуществляет последовательный просмотр всех полей с самой первой записи до самой последней, осуществляя сопоставление выбранного значения с исходным. Чем больше таблица и чем больше в ней полей, тем дольше осуществляется выборка. Если же у данной таблицы существует индекс для рассматриваемого столбца, то MySQL сможет сделать быстрое позиционирование к физическому расположению данных без необходимости осуществлять полный просмотр таблицы.
Например, если таблица состоит из 1000 строк, то скорость поиска будет как минимум в 100 раз быстрее. Эта скорость будет еще выше, если есть необходимость обратиться сразу ко всем 1000 столбцам, т.к. в этом случае не происходит затрат времени на позиционирование жесткого диска.
В каких ситуациях создание индекса целесообразно:

Быстрый поиск строк при использовании конструкции WHERE
Поиск строк из других таблиц при выполнении объединения
Поиск значения MIN() или MAX() для проиндексированного поля
Сортировка или группировка таблицы в случае, если используется проиндексированное поле
В некоторых случаях полностью теряется необходимость обращаться к файлу данных. Если все используемые поля для некоторой таблицы цифровые и формируют левосторонний индекс для некоторого ключа, то значения могут быть возвращены полностью из индексного дерева с намного большей скоростью.
Если выполняются запросы вида
SELECT * FROM tbl_name WHERE col1=val1 AND col2=val2;
и существует смешанный индекс для полей col1 и col2, то данные будут возвращены напрямую. Если же созданы отдельные индексы для col1 и для col2, то оптимизатор попробует найти наиболее ограниченный индекс путем определения того, какой из индексов может найти меньше строк, и будет использовать этот индекс для получения данных.
Если у таблицы есть смешанный индекс, то будет использоваться любое левостороннее совпадение с существующим индексом. Например, если есть смешанный индекс 3-х полей (col1, col2, col3), то индексный поиск можно осуществлять по полям (col1), (col1, col2) и (col1, col2, col3).

Как Вы наверняка знаете, для работы с MySQL-сервером необходимо предварительно установить с ним соединение, предъявив логин и пароль. Процесс установки соединения может продолжаться гораздо большее время, нежели непосредственная обработка запроса к базе после установки соединения. Следуя логике, надо избегать лишних соединений к базе, не отсоединяясь от нее там, где это можно сделать, если в дальнейшем планируется продолжить работу с SQL-сервером. Например, если Ваш скрипт установил соединение к базе, сделал выборку данных для анализа, не нужно закрывать соединение к базе, если в процессе работы этого же скрипта Вы планируете результаты анализа поместить в базу.
Также можно поддерживать так называемое persistent (постоянное) соединение к базе, но это возможно в полном объеме при использовании более сложных сред программирования, чем php или perl в обычном CGI-режиме, когда интерпретатор соответствующего языка разово запускается веб-сервером для выполнения пришедшего запроса.