© 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
Введение

В процессе предоставления услуг хостинга мы обращаем внимание на наиболее часто встречающиеся ошибки, которые совершают пользователи при разработке своих виртуальных серверов. Одним из "тяжелых" мест для типичного веб-мастера является работа с MySQL-сервером. Обычно изучение принципов функционирования SQL и методов работы с базами данных ведется по литературе, из которой выбираются только актуальные на момент чтения вещи - как соединиться с базой, как сделать запрос, как обновить информацию или добавить новую запись в базу данных и так далее. Такой подход, конечно, дает желаемый результат - интерфейсы веб-сайта пользователя в итоге оказываются интегрированными с базой данных. Однако не всегда пользователи задумываются о том, насколько оптимально работает их база, как можно оптимизировать происходящие при работе с MySQL процессы и каково будет функционирование виртуального сервера при увеличившейся нагрузке, "наплывах" пользователей в результате, например, "раскрутки" сайта. Эта статья поможет Вам оптимизировать работу с СУБД MySQL. Изложенный материал не претендует на детальное описание оптимизации MySQL вообще, а лишь обращает внимание на наиболее часто совершаемые пользователями ошибки и рассказывает о том, как их избежать. Более подробно узнать о тонкостях настройки MySQL можно на специализированных страницах, ссылки на которые приведены в конце этой статьи.

Какие данные нужно хранить в MySQL

Не старайтесь поместить в базы данных всю информацию, которая у Вас есть. Например, не нужно хранить там картинки, хоть MySQL это и позволяет. Помещая в базу данных двоичные образы графических файлов, Вы только замедлите работу своего сервера. Прочитать файл с картинкой с диска гораздо проще и, с точки зрения потребляемых ресурсов, экономичнее, нежели соединиться из скрипта к SQL, сделать запрос, получить образ, обработать его и, выдав нужные http-заголовки, показать посетителю веб-сервера. Во втором случае операция выдачи картинки потребует в несколько раз больше ресурсов процессора, памяти и диска. Также стоит помнить о том, что существуют механизмы кэширования веб-документов, которые позволяют пользователю экономить на трафике, а при динамической генерации контента Вы фактически лишаете своих посетителей этой удобной возможности.

Вместо картинок лучше хранить в MySQL информацию, на основе которой можно генерировать ссылки на статические картинки в динамически создаваемых скриптами документах.

Оптимизация запросов

В ситуациях, когда реально требуется получить только определенную порцию данных из MySQL, можно использовать ключ LIMIT для функции SELECT. Это полезно, когда, например, нужно показать результаты поиска чего-либо в базе данных. Допустим, в базе есть список товаров, которые предлагает Ваш интернет-магазин. Выдавать весь список товаров в нужной категории несколько негуманно по отношению к пользователю - каналы связи с интернет не у всех быстрые и выдача лишних ста килобайт информации зачастую заставляет пользователей провести не одну минуту в ожидании результатов загрузки страницы. В таких ситуациях информацию выдают порциями по, допустим, 10 позиций. Неправильно делать выборку из базы всей информации и фильтрацию вывода скриптом. Гораздо оптимальнее будет сделать запрос вида

select good, price from books limit 20,10

В результате, MySQL "отдаст" Вам 10 записей из базы начиная с 20-й позиции. Выдав результат пользователю, сделайте ссылки "Следующие 10 товаров", в качестве параметра передав скрипту следующую позицию, с которой будет делаться вывод списка товаров, и используйте это число при генерации запроса к MySQL.
Также следует помнить, что при составлении запросов к базе данных (SQL queries) следует запрашивать только ту информацию, которая Вам реально нужна. Например, если в базе 10 полей, а в данный момент реально требуется получить только два из них, вместо запроса

select * from table_name

используйте конструкцию вида

select field1, field2 from table_name

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

select title from books where author='Иванов'

Также есть ключ LIKE, который позволяет искать поля, значения которых "похожи" на заданный шаблон:

select title from books where author like 'Иванов%'

В данном случае MySQL выдаст названия книг, значения поля author у которых начинаются с 'Иванов'.

Ресурсоемкие операции


Далее