mysyslog.ru

21 Сентябрь 2009

Mysql – быстрый заход в консоль.

написано в рубрике: dba — Метки: — constantine.malov @ 15:40

Многие люди используют для управления базами или phpmyadmin или другие GUI программы. Я же предпочитаю консольную программу mysql. У того же phpmyadmin есть хорошее качество любого web приложения — оно может запоминать логин и пароль от базы, что очень удобно. Но и для консольной программы есть возможность организовать «быстрый» вход. При запуск mysql (и другие консольные программы из набора поставки mysql) просматривает домашний каталог пользователя в поисках файла .my.cnf, в котором могут быть какие-то настройки переменных сессии. В нем же можно задать и логин/пароль. Делается это в разделе [client]:

[client]
user=root
password=ifdJhfhb4n

Теперь все консольные программы будут автоматически подставлять логин и пароль из этого файла. Конечно же такая настройка понижает безопасность сервера mysql, потому необходимо позаботиться об безопасности файла. В данном случае используется учетная запись root и для сервера mysql и сервера как такового:

# chown -R root /root
# chmod -R 700 /root
# ls -la /root

-rwx—— 1 root root 27 May 1 23:15 .my.cnf

Mysql — настройка после установки.

написано в рубрике: dba — Метки: — constantine.malov @ 15:38

Как правило, сразу после установки mysql… сразу начинают использовать. Но настройки «из коробки» подходят для небольших проектов с небольшой интенсивностью относительно простых запросов. Отсюда низкая производительность базы. А ведь достаточно поменять всего несколько настроек, чтобы ситуация изменилась кардинально. Сразу оговорюсь, речь будет идти в первую очередь про MyISAM, так как именно этот тип таблицы до сих пор используется наиболее часто (отчасти тут виноваты и настройки по умолчанию — именно этот движок таблиц установлен изначально для создания таблиц без указания типа).
(далее…)

7 Апрель 2009

Еще один важный параметр работы MySQL

написано в рубрике: dba — Метки: — constantine.malov @ 11:33

При записи, удалении или изменении таблиц mysql, СУБД выполняет блокировку таблицы, чтобы не повредить данные. Если блокировки выполняются долго – то это проблема. Т.е. запросы на изменения данных будут происходить дооолго.
Для того, чтобы посмотреть, были ли задержки при выполнении блокировок,нужно выполнить такой запрос:

  1.  
  2. mysql> SHOW STATUS LIKE ‘Table_locks_%’;
  3. +———————–+———+
  4. | Variable_name         | Value   |
  5. +———————–+———+
  6. | Table_locks_immediate | 2473395 |
  7. | Table_locks_waited    | 459     |
  8. +———————–+———+
  9.  

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

3 Январь 2009

Настройка производительности MySQL (MyISAM)

написано в рубрике: dba — Метки: , — constantine.malov @ 15:51


В свое время я достаточно долго искал в интернете внятное описание тюнинга производительности mysql и ничего подходящего не находил. На mysql.com главы документации о производительности носят скорее декларативный характер – “Сделайте так, и все будет хорошо” – без описание почему именно такие значения нужно выставить. Сейчас ситуация несколько меняется, появляются статьи о правильной настройке с объяснениями, похоже в основном благодаря книге High Performance MySQL. Этой публикацией я открываю небольшой цикл статей, призванных помочь системным администраторам и web-мастерам настраивать mysql.

(далее…)

Работает на WordPress