Виртуальный хостингДоговор на хостингКомпьютерная техникаПоддержка сайтовДата Центрдля ВебМастераРегистрация доменовРазмещение серверовАренда серверовхостинг словарь Создание сайтов Продвижение сайтов Баннерная реклама CMS системы Новости






использование MySQL в различных хостинг сетях

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


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

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

SELECT * FROM table_name

Используйте дизайн формы

выберите поле1, поле2 от table_name
Таким образом, вам не будет загружаться MySQL ненужной работы, провести дополнительную память и выполнить дополнительные операции диска. Вы должны также использовать ключ ГДЕ, где вы хотите получать информацию, которая подпадает под определенный шаблон. Например, если вы хотите получить из базы поля с названиями книг, автором которых является Иванов, использовать конструкцию вида
выберите название из книги, где автор = 'Иванов'
Существует также ключевые LIKE, который позволяет искать поля, похожие на данный шаблон:
выберите название из книги, где автор, как "Иванов% '
В этом случае MySQL будет давать названия книг, значения поля, на которые автор начинает с "Иванов".
Дорогие операции
Однако помните, что Есть операций, выполнение которых само по себе требует больше ресурсов, чем нормальные запросы. Например, использование операции DISTINCT функция SELECT является потребление намного больше процессорного времени, чем обычный SELECT. DISTINCT пытается искать уникальные значения, зачастую производить большое количество сравнений, подстановок и расчетов. Чем больше объем данных, которые использует DISTINCT (поскольку ваша база увеличивается с течением времени), тем медленнее будет осуществляться с такой просьбой, и увеличение объема ресурсов, необходимых для выполнения такой функции не будут непосредственно proportsonalno объема хранения и обработки данных , и гораздо быстрее.
Индексы
Индекс, используется для более быстрого поиска значение одного из полей. Если индекс создан, 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-режиме, когда интерпретатор соответствующего языка разово запускается веб-сервером для выполнения пришедшего запроса.

 

<<Назад  на верх  Далее>>

Виртуальный хостинг
 
Аренда серверов
 
Размещение серверов
 
Регистрация доменов
 
Контакты
Copyright 2005-2010, Miheeff.ru
Покупка хостинга и доменов: (495) 782-7256
тех. поддержка: pr@miheeff.com