» Главная
eXcode.ru » Статьи » Базы данных » MySQL » Тонкая настройка MySQL
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 18





Копер

Авиабилеты и визы от. Информация о новых словарях и энциклопедиях.

swaeboy.ru


Обучение косметологии

Прайс-лист. Правила оплаты.

minona-school.su




Ведущий раздела: MadvEX
Описание: Эта заметка, в основном, является переводом соответствующих разделов руководства по MySQL.Здесь собраны возможные способы настройки и использования MySQL-сервера для достижениямаксимальной производительности. Все нижесказанное относится к версии 3.22 для Linux. Длядругих операционных систем некоторые из утверждений могут не выполняться.



«1» 

Компилирование исходников.
Для достижения наибольшей производительности сервера нужно учитывать такие факты:
1. При компиляции pgcc с опцией –O6 mysqld работает на 11% быстрее, чем если
компилировать обычным gcc.
2. Если использовать динамическую линковку, то результат будет на 13% медленней, чем при
статической.
3. Если использовать TCP/IP соединения, то результат на 7.5% хуже, чем при использовании
UNIX – сокетов.


Настройка переменных.
Если запустить mysqladmin –variables, то можно увидеть примерно такую картину.


Как MySQL работает с памятью.
Здесь приведено описание того, как MySQL сервер работает с оперативной памятью. В скобочках
жирными буквами указаны переменные, которые влияют на то или иное значение.
1. Кey_buffer является общим для всех потоков. Все остальные буфера выделяются по мере
необходимости.
2. Каждое соединение использует некоторое количество памяти. Это память для стека
(thread_stack), буфер соединения (net_buffer_length) и буфер результата
(net_buffer_length)
3. Для каждого запроса, требующего последовательно сканировать таблицу, выделяется
буфер чтения (record_buffer).


Как работать с таблицами для достижения большей производительности.
1. По возможности все поля декларировать как NOT NULL. Это сделает работу с таблицами
более быстрой и сохранит 1 бит на каждое такое поле.
2. Применять значения по умолчанию (DEFAULT). При вызове запроса INSERT в таблицу
будут записываться только те поля, значения которых отличаются от DEFAULT.
3. Используйте настолько малые типы INT, насколько это возможно. Например, применять
MEDIUMINT намного лучше, чем обычный INT.


Форматы таблиц в MySQL
MySQL для хранения данных использует три типа таблиц: с фиксированной длиной строки, с
динамической длиной строки и сжатые таблицы.
Таблицы с фиксированной длиной строки.
Этот формат применяется по умолчанию, если в таблице нет полей с типом VARCHAR,
BLOB или TEXT.
Все поля типа CHAR, NUMERIC и DECIMAL дополняются в конце пробелами.
Высокая скорость работы.
Легко кэшируются.


Общие рекомендации по повышению производительности.
1. Запускать mysqld с правильно подобранными опциями (см. настройка переменных).
2. Для ускорения SELECT запросов построить индексы для тех полей, которые участвуют в
условии WHERE.
3. Оптимизировать типы полей. По возможности использовать NOT NULL. (см. работу с
таблицами).
4. В MySQL применяется два способа блокировки таблиц (lock table) – внутренняя и внешняя
блокировки.


Использование индексов.
Все индексы (PRIMARY, UNIQUE и INDEX) хранятся в B-дереве. В строковых типах
автоматически происходит сжатие начальных и конечных пробелов.
Индексы используются для:
Быстрого поиска записей по условию WHERE;
Для объединения таблиц с посредством JOIN;
Поиска MAX() и MIN() значений для ключевых полей;
Для сортировки и группировки таблиц (директивы ORDER BY и GROUP BY);
Для извлечения данных не из таблицы с данными, а из индексного файла. Это возможно
только в некоторых случаях, например, когда все извлекаемые поля проиндексированы.
Рассмотрим следующий запрос SELECT:
SELECT * FROM tbl_name WHERE col1=val1 AND col2=val2;


«1» 

Имя:

Пароль:



Регистрация

Как вы относитесь к блогам?
Не знаю что это такое!
17% (13)
ничего особенного
35% (27)
иногда читаю чужие блоги
27% (21)
постоянно читаю блоги
1% (1)
веду свой блог
5% (4)
считаю блоги двигателем интернета
6% (5)
ЖЖ рулит, фсе остальное ф топку!
9% (7)

Проголосовало: 78
Алгебра у программистов. Преподаватель пишет на доске: sin X = 1.
- Ну, кто может найти X?
Выбегает программист и так радостно:
- Вот, вот X, - показывает на X.
Рейтинг: 5.8/10 (6)
Посмотреть все анекдоты

 
eXcode.ru » Статьи » Базы данных » MySQL » Тонкая настройка MySQL