|
|
Ведущий раздела: MadvEX Описание: Эта заметка, в основном, является переводом соответствующих разделов руководства по MySQL.Здесь собраны возможные способы настройки и использования MySQL-сервера для достижениямаксимальной производительности. Все нижесказанное относится к версии 3.22 для Linux. Длядругих операционных систем некоторые из утверждений могут не выполняться.
«1»
|
Компилирование исходников. | Для достижения наибольшей производительности сервера нужно учитывать такие факты:
1. При компиляции pgcc с опцией –O6 mysqld работает на 11% быстрее, чем если
компилировать обычным gcc.
2. Если использовать динамическую линковку, то результат будет на 13% медленней, чем при
статической.
3. Если использовать TCP/IP соединения, то результат на 7.5% хуже, чем при использовании
UNIX – сокетов.
Добавил: MadvEX Дата: 2006-08-24 16:52:32 Количество просмотров: 2331 Рейтинг: 2.00
|
|
Настройка переменных. | Если запустить mysqladmin –variables, то можно увидеть примерно такую картину.
Добавил: MadvEX Дата: 2006-08-24 16:51:51 Количество просмотров: 1900 Рейтинг: 3.00
|
|
Как MySQL работает с памятью. | Здесь приведено описание того, как MySQL сервер работает с оперативной памятью. В скобочках
жирными буквами указаны переменные, которые влияют на то или иное значение.
1. Кey_buffer является общим для всех потоков. Все остальные буфера выделяются по мере
необходимости.
2. Каждое соединение использует некоторое количество памяти. Это память для стека
(thread_stack), буфер соединения (net_buffer_length) и буфер результата
(net_buffer_length)
3. Для каждого запроса, требующего последовательно сканировать таблицу, выделяется
буфер чтения (record_buffer).
Добавил: MadvEX Дата: 2006-08-24 16:50:03 Количество просмотров: 1907 Рейтинг: 3.25
|
|
Как работать с таблицами для достижения большей производительности. | 1. По возможности все поля декларировать как NOT NULL. Это сделает работу с таблицами
более быстрой и сохранит 1 бит на каждое такое поле.
2. Применять значения по умолчанию (DEFAULT). При вызове запроса INSERT в таблицу
будут записываться только те поля, значения которых отличаются от DEFAULT.
3. Используйте настолько малые типы INT, насколько это возможно. Например, применять
MEDIUMINT намного лучше, чем обычный INT.
Добавил: MadvEX Дата: 2006-08-24 16:49:30 Количество просмотров: 2037 Рейтинг: 3.00
|
|
Форматы таблиц в MySQL | MySQL для хранения данных использует три типа таблиц: с фиксированной длиной строки, с
динамической длиной строки и сжатые таблицы.
Таблицы с фиксированной длиной строки.
Этот формат применяется по умолчанию, если в таблице нет полей с типом VARCHAR,
BLOB или TEXT.
Все поля типа CHAR, NUMERIC и DECIMAL дополняются в конце пробелами.
Высокая скорость работы.
Легко кэшируются.
Добавил: MadvEX Дата: 2006-08-24 16:48:30 Количество просмотров: 2168 Рейтинг: 2.50
|
|
Общие рекомендации по повышению производительности. | 1. Запускать mysqld с правильно подобранными опциями (см. настройка переменных).
2. Для ускорения SELECT запросов построить индексы для тех полей, которые участвуют в
условии WHERE.
3. Оптимизировать типы полей. По возможности использовать NOT NULL. (см. работу с
таблицами).
4. В MySQL применяется два способа блокировки таблиц (lock table) – внутренняя и внешняя
блокировки.
Добавил: MadvEX Дата: 2006-08-24 16:45:22 Количество просмотров: 2399 Рейтинг: 3.00
|
|
Использование индексов. | Все индексы (PRIMARY, UNIQUE и INDEX) хранятся в B-дереве. В строковых типах
автоматически происходит сжатие начальных и конечных пробелов.
Индексы используются для:
Быстрого поиска записей по условию WHERE;
Для объединения таблиц с посредством JOIN;
Поиска MAX() и MIN() значений для ключевых полей;
Для сортировки и группировки таблиц (директивы ORDER BY и GROUP BY);
Для извлечения данных не из таблицы с данными, а из индексного файла. Это возможно
только в некоторых случаях, например, когда все извлекаемые поля проиндексированы.
Рассмотрим следующий запрос SELECT:
SELECT * FROM tbl_name WHERE col1=val1 AND col2=val2;
Добавил: MadvEX Дата: 2006-08-24 16:47:26 Количество просмотров: 1900 Рейтинг: 3.00
|
«1»
|
|
|
|
|
|
Как вы относитесь к блогам?
Не знаю что это такое! | | 17% (13) | ничего особенного | | 35% (27) | иногда читаю чужие блоги | | 27% (21) | постоянно читаю блоги | | 1% (1) | веду свой блог | | 5% (4) | считаю блоги двигателем интернета | | 6% (5) | ЖЖ рулит, фсе остальное ф топку! | | 9% (7) |
Проголосовало: 78
|
|
Алгебра у программистов. Преподаватель пишет на доске: sin X = 1.
- Ну, кто может найти X?
Выбегает программист и так радостно:
- Вот, вот X, - показывает на X.
|
|