Beginners MYSQL Database Tutorial 1 # Download , Install MYSQL and first SQL query

Опубликовано: 29.06.2017

видео Beginners MYSQL Database Tutorial 1 # Download , Install MYSQL and first SQL query

How to Enable the Query Log in MySQL

MySQL сервер будет работать резвее, если ему выделить больше памяти и правильное ее распределить. Для того, чтобы найти какой тип таб­лиц вы используете при работе довольно открыть подходящую базу данных в phpMyAdmin и поглядеть на столбец Туре рядом с каждой таблицей.



Все конфигурации, которые описаны ниже, необходимо делать в файле /data/mysql/my.cnf в секции [mysqld] . Пример конфигурационного файла приведен ниже. По дефлоту этого файла там нет, потому что MySQL сервер хорошо работает и без него, но если вам необходимо поменять какие-то настойки сделайте его и добавьте туда нужные опции.


MySQL Error number:1045 Resolved

Диагностика

Для того, что отследить, какие запросы производятся на MySQL сервере. Можно добавить последующие строки:

log=/data/mysql/query.log

log_slow_queries=/data/mysql/slow-queries.log

long_query_time=2

log-long-format

Директива log фиксирует в лог файле /data/mysql/query.log все за­просы к базе данных. Директива log_show_queries позволяет выслеживать запросы, которые производились подольше чем long_query_time секунд. Так­же в этот файл записываются запросы, которые привели к полному скану таблицы (т.е. не были применены индексы).


Mengatasi Error MySQL Saat Diimport: #1065 Query was empty

Общие характеристики

max_connections=100

back-log=20

Настройка max_connections указывают, какое количество параллель­ных соединений может сразу принимать MySQL сервер. Настройка back-log показывает какое количество соединений может стоять в очереди не принятыми, до того как MySQL сервер начнет вообщем отказывать в под­соединении.

Кэширование запросов

query-cache-type — 1

query_cache_size — 10M

Опции кэширования запросов позволяют ускорить работу MySQL за счет того, что если приложение отправляет в базу данных полностью схожие запросы, то тогда ответы на эти запросы могут быть воз­вращены из кэша, без выполнения самого запроса на таблицах. Размер кэша с плодами можно изменять     в нашем случае это 10 Мбайт.

Выделение буферов

low-priority-updates

set-variable= join_buffer_size=500kb

set-variable= key_buffer_size=200M

read_buffer_size — 500k

sort_buffer_size — 500k

read_rnd_buffer_size= lm

Если у вас происходят в большей степени подборки из таблицы, а обнов­ления и вставки происходят пореже, то можно включить опцию low-priority-updates это повысит ценность SELECT запросов по срав­нению с UPDATE/INSERT.

Параметр join_buffer_size показывает размер буфера, применяемого при SELECT FROM a JOIN Ь запросах, в каких происходит JOIN 2-ух таб­лиц. Этот буфер употребляется только если не могут быть применены индексы таблиц. Если же на таблицах есть индексы и они могут использо­ваться для JOIN-a. то тогда этот параметр не играет роли.

Параметр key_buffer_size определяет размер памяти, который будет от­веден под кэширование индексов таблиц. Этот кэш общий для всех соеди­нений, потому его можно ставить довольно огромным. На загруженных MySQL серверах под этот кэш могут выделать до 25% всей оперативки машины.

Если у вас делаются запросы, итог которых должен быть отсортирован и на данной таблице есть индексы, то для улучшения производительности стоит прирастить read_rnd_buffer_size. Это может значительно сделать лучше производительность запросов с ORDER  BY. Повышайте этот параметр осторожно, потому что он задает размер памяти, выделяемый каж­дому клиенту. Значение по умолчанию     128Kb.

Хоть какой запрос, который делает операции сортировки (ORDER  BY) и группировки (GROUP BY), за ранее выделяет буфер размером sort_buffer_size . Повышение этого буфера тоже улучшает производительность этих запросов. Тут действует такое же предупреждение этот буфер выделяется для каждого соединения. Значение по дефлоту 2Mb.

Таким макаром в той конфигурации, которая указана выше, использо­вание памяти будет последующим:

Для каждого потока/подсоединенного клиента будет выделяться

join_buffer_size  + read_buffer_size  +  sort_buffer_size  + read_rnd_buffer_size

памяти.

Таким макаром, при лимите max_connections установленным в 100, мы получим

(500Kb  +  500КЬ + 500КЬ + 1Mb) * 100 = 250Mb .

При всем этом MySQL сервер будет использовать к тому же 200.МЬ для key_buffer_size. С припасом стоит считать, что MySQL сервер употребляет кое-где на 15-20% памяти, чем мы посчитали. Таким макаром в данной кон­фигурации под MySQL сервер будет выделяться кое-где 500МЬ памяти.

MyISAM таблицы

Если вы используете таблицы в (формате MyISAM, то для ускорения опера­ций ALTER TABLE либо REPAIR TABLE можно прирастить размер буффера денька сортировки индексов. Для этого необходимо добавить в /data/mysql/my. cnf последующие строчки:

myisam_sort_buffer_size  — 200M

Так как эти запросы происходят редко и выполняются, в главном, админом баял данных, можно смело выставлять его в высочайшее зна­чение это значительно ускорит изменение таблиц, в каких есть много данных. Размер по умолчанию  8Mb.

InnoDB таблицы

Для оптимизации работы InnoDB можно добавить в /data/mysql/my. cnf последующие строчки:

innodb_log_buffer_size=8M

innodb_buffer_pool_size=100M innodb_additional_mem_pool_size = 20485760

Параметр innodb_log_buffer_size позволяет прирастить размер буфера, который употребляется для записи лога транзакций на диск. Если у вас происходит много огромных транзакций то это может уменьшить дисковый ввод-вывод.

Если у вас базы в большей степени в формате InnoDB, то скип  прирастить innodb_buffer_pool_size это размер буферов,  которые употребляется для хранения индексов и для чтения данных с диска. На выделенном MySQL сервере, который работает только с InnoDB таблицами, он может доходить до 50-80% оперативной памяти.

Параметр innodb_additional_mem_pool_size показывает, сколько памя­ти отводить для хранения внутренних данных InnoDB (эти данные вырастают совместно с повышением количества таблиц на сервере). Если MySQL серверу не хватает этой памяти, то он будет выделять дополнительную память и предупреждать об этом в log файле.

Пример

Пример файла конфигурации. Направьте внимание, что все записи изготовлены под секцией [mysqld].

[mysqld]

low-priority-updates

skip-networking

record_buffer — 500k

sort_buffer_size — 500k

read_rnd_buffer_size=2m

max_connections=100

back-log=20