Полезная информация по MySQL | Вебмастер DataLife Engine

Категория архивов: Полезная информация по MySQL



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

Оставить комментарий

Все индексы (PRIMARY, UNIQUE и INDEX) хранятся в B-дереве. В строковых типах автоматически происходит сжатие начальных и конечных пробелов. Индексы используются для: Быстрого поиска записей по условию WHERE; Для объединения таблиц с посредством JOIN; Поиска MAX() и MIN() значений для ключевых полей ; Для сортировки и группировки таблиц (……ORDER BY и GROUP BY); Для извлечения […]

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

Оставить комментарий

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

Оставить комментарий

Здесь приведено описание того, как MySQL сервер работает с оперативной памятью. В скобочках жирными буквами указаны переменные, которые влияют на то или иное значение. Key_buffer является общим для всех потоков. Все остальные буфера выделяются по мере необходимости. Каждое соединение использует некоторое количество памяти. Это память для стека (thread_stack), буфер соединения (net_buffer_length) и буфер результата (net_buffer_length) […]

Если запустить mysqladmin -variables, то можно увидеть примерно такую картину.   Variable_name Value back_log 5 connect_timeout  5  basedir /usr/local/  datadir /home/www/data/  delayed_insert_limit 100  delayed_insert_timeout 300  delayed_queue_size 1000  join_buffer  131072  flush_time 0  key_buffer 8388600  language /usr/local/share/mysql/english/  log OFF  log_update OFF  long_query_time 10  low_priority_updates OFF  max_allowed_packet 1048576  max_connections 100  max_connect_errors 10  max_delayed_insert_threads 20  max_join_size 4294967295  max_sort_length 1024  […]

Оставить комментарий

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

Оставить комментарий