П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 174926 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 71839 раз(а).

Учебник HTML.
Просмотров 72011 раз(а).

Руководство по PHP5.
Просмотров 42618 раз(а).

Хостинг через призму DNS.
Просмотров 49059 раз(а).

Подборка текстов стандартных документов.
Просмотров 43037 раз(а).

Учебник PHP - Самоучитель
Просмотров 49380 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 49614 раз(а).

Внешние атаки...
Просмотров 40168 раз(а).

Учебник PHP.
Просмотров 35196 раз(а).

SSI в примерах.
Просмотров 26504 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь




Глава 5. Оптимизация в MySQL
Пред.     След.

5.2. Оптимизация SELECT и других запросов
5.2.2. Оценка производительности запроса

В большинстве случаев можно оценивать производительность путем подсчета дисковых операций. Для маленьких таблиц можно обычно принимать 1 строку за 1 операцию дискового поиска (поскольку индекс, скорее всего, в кэше). Для больших таблиц можно считать, что (при использовании индексов типа B++ деревьев) для нахождения строки потребуется

log(количество_строк) / log(длина_индексного_блока / 3 * 2 / (длина_индекса + длина_указателя_на_данные)) + 1

дисковая операция для получения строки.

Обычно в MySQL индексный блок занимает 1024 байта, а указательн - 4 байта. Для таблицы, содержащей 500000 строк и имеющей длину индекса 3 (medium integer) потребуется log(500,000)/log(1024/3*2/(3+4)) + 1 = 4 дисковых операции поиска.

Поскольку вышеупомянутый индекс будет занимать приблизительно 500000 * 7 * 3/2 = 5,2Mб (если учитывать, что индексные буфера обычно заполняются на 2/3), большая часть индекса, скорее всего, окажется в памяти, и для того, чтобы найти строку, потребуется лишь 1-2 обращения к ОС для чтения.

Для записи, однако, потребуется 4 дисковых запроса (таких, какие рассматривались выше) чтобы найти место для помещения нового индекса, и обычно 2 дисковых операции, чтобы обновить индекс и вставить строку.

Обратите внимание: сказанное выше не означает, что производительность приложения будет ухудшаться в log N раз! Поскольку все кэшируется в OС или на SQL-сервере, замедление работы при увеличении таблицы будет незначительным. И лишь после того, как данных станет так много, что они перестанут помещаться в кэш, замедление работы там, где работа приложения сводится только к операциям дискового поиска (количество которых растет в log N), станет гораздо ощутимей. Чтобы избежать этого, следует увеличить индексный кэш так, чтобы он вмещал возросшее количество данных. See Раздел 5.5.2, «Настройка параметров сервера».


Назад Начало Главы Начало Раздела Вперед

Пред. Глава След. Глава
Глава 4. Администрирование баз данных Начало Книги Глава 6. Справочник по языку MySQL


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru