Как MySQL использует память




В следующем перечне дано описание некоторых аспектов использования памяти сервером mysqld. Там, где это возможно, приводятся имена серверных переменных, относящихся к использованию памяти:

Буфер ключей (переменная key_buffer_size) используется совместно всеми потоками; другие буферы, используемые данным сервером, выделяются при необходимости (см. раздел Настройка параметров сервера).

Каждое соединение использует определенное пространство в памяти для конкретного потока: стек (по умолчанию 64Kб, переменная thread_stack), буфер соединения (переменная net_buffer_length) и буфер результата (переменная net_buffer_length). Буфер соединения и буфер результата при необходимости динамически расширяются вплоть до max_allowed_packet. При выполнении запроса также выделяется память для копии строки данного текущего запроса.

Все потоки совместно используют одну и туже базовую память.
Только сжатые таблицы типа ISAM/MyISAM имеют распределенную память. Это объясняется тем, что 4 Гб памяти (адресуемой в рамках 32-битной разрядности) мало для достаточно больших таблиц. Когда системы с 64-разрядными адресным пространством получат более широкое распространение, мы сможем добавить в сервер общую поддержку для распределения памяти.

Каждый запрос, выполняющий последовательный просмотр таблицы, размещается в буфере чтения (переменная record_buffer).

При чтении строк в «случайном» порядке (например, после сортировки) выделяется буфер «случайного чтения», чтобы избежать поиска по диску
(переменная record_rnd_buffer).

Все объединения выполняются за одну операцию, и большинство объединений может производиться даже без временных таблиц. Большинство
временных таблиц располагаются в оперативной памяти (в динамически выделяемой области HEAP). Временные таблицы с записями большой длины (вычисляемой как сумма длин всех столбцов) или таблицы, содержащие столбцы BLOB, хранятся на диске. В версиях MySQL до 3.23.2 существует проблема, заключающаяся в том, что если таблицы HEAP в динамически выделяемой области превышают размер tmp_table_size, то возникает ошибка The table tbl_name is full. В более новых версиях эта проблема при необходимости решается путем автоматического преобразования хранящихся в оперативной памяти HEAP-таблиц в таблицы MyISAM, расположенные на диске. Чтобы обойти эту проблему, можно увеличить размер временных таблиц установкой опции tmp_table_size в mysqld или установкой SQL-опции SQL_BIG_TABLES в клиентской программе (см. раздел Синтаксис команды SET). В версии MySQL 3.20 максимальный размер временной таблицы был равен record_buffer*16, так что при использовании данной версии необходимо увеличить значение record_buffer. Можно также запустить mysqld с опцией –big-tables – для того, чтобы всегда хранить временные таблицы на диске. Однако это будет влиять на скорость многих сложных запросов.

Большинство запросов, выполняющих сортировку, размещаются в буфере сортировки и в 0-2 временных файлах, в зависимости от размера результирующего набора данных (см. раздел Где MySQL хранит временные файлы).

Отрывок обалденно полезной статьи  Оптимизация сервера MySQL .

Popularity: 4%



Этот материал находится на сайте http://compiling.ru
__________________________________________



Похожие посты:


  • Ограничение пользователей в MySQL
  • Как я выжил на маленьком vds.
  • Resource Capping Daemon, Attribute & Configuration.
  • Resource Capping Daemon, using in zone.
  • Resource Capping Daemon, Overview



  • Опубликовано 17 Июн 2009 в 11:59. В рубриках: Optimization. Вы можете следить за ответами к этой записи через RSS 2.0. Вы можете оставить отзыв или трекбек со своего сайта.

    Отзывов: 3 на “Как MySQL использует память”

    1. dan1005 17 Июл 2009 в 09:48

      Рекомендую program.rin.ru/razdel/html/562-0.html

    2. smoomiaIntony 24 Июл 2009 в 17:02

      Админ я не могу зарегестрироваться может я просто не то делаю ?

    3. dan1005 24 Июл 2009 в 17:14

      Предмодерация.
      All be fine.

    Оставьте свой отзыв

    Коротко: последние новости


    Symantec и Снуп Дог организовали конкурс репа на тему киберпреступлений
    Русская милиция задержала 10 подозреваемых в распространении трояна
    Пентагон подтвердил информацию о взломе своей секретной сети
    25% новых червей создано для распространения через USB-накопители

    Есть вопрос! Оставь свой голос!

    Question:

    Сколько у тебя серверов?

    View Results

    Loading ... Loading ...




    Most Popular Posts



    Supported:

  • где купить матрас


  • free counters