powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация MySQL по результатам mysqltuner.pl
16 сообщений из 41, страница 2 из 2
Оптимизация MySQL по результатам mysqltuner.pl
    #38271052
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterSkyЕсть лог медленных запросов, есть лог запросов которые не используют индексы...
Почему нету лога запросов которые задействуют диск?
Ну или хотябы расширеного EXPLAIN который бы показал что и насколько задействовалось при выполнении запроса? (сколько и в каких буферах/дисках занял места)
Потому практика использования задает возможности ПО. Все возможности строятся из практических потребностей.
Медленные запросы как раз и задействуют диск.

Отдельно в патчах от percona есть специальные данные задействована ли сортировка на диске и по операциям чтения innodb. Может поможет вам.

Расширенный explain называется show profile и show status .
...
Рейтинг: 0 / 0
Оптимизация MySQL по результатам mysqltuner.pl
    #38272658
Inside22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
доброго времени суток.
спасибо вам за ценнейшие советы.
на данный момент чисто визуально работа с БД стала на много быстрее. От отдела продаж жалобы больше не поступают.

MYSQL на данный момент работаем с нижеприведенными настройками. Честно говоря времени катастрофически не хватает на то, чтобы сесть и основательно изучить все основные принципы конфигурации БД.

На данный момент у меня вот чего:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
default-storage-engine=INNODB
collation_server=utf8_general_ci
character_set_server=utf8

innodb_file_per_table=1
max_allowed_packet=512M

local-infile=0
innodb_additional_mem_pool_size=512M
innodb_buffer_pool_size=2048M
innodb_flush_log_at_trx_commit=1

query_cache_size=512M
join_buffer_size=2G
thread_cache_size=36
query_cache_limit=512M

key_buffer_size=2048M
join_buffer_size=512M



Вот с этим конфигом я получил не плохой прирост эффективности кеша, до 24.0% выросло значение.


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
 >>  MySQLTuner 1.2.0 - Major Hayden <major@mhtx.net>;
 >>  Bug reports, feature requests, and downloads at http://mysqltuner.com/
 >>  Run with '--help' for additional options and output filtering

-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.5.30-cll
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 26M (Tables: 64)
[--] Data in InnoDB tables: 1G (Tables: 167)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[!!] Total fragmented tables: 23

-------- Security Recommendations  -------------------------------------------
[OK] All database users have passwords assigned

-------- Performance Metrics -------------------------------------------------
[--] Up for: 2d 0h 16m 14s (840K q [4.839 qps], 46K conn, TX: 1B, RX: 187M)
[--] Reads / Writes: 52% / 48%
[--] Total buffers: 5.0G global + 2.0G per thread (151 max threads)
[color=red][!!] Maximum possible memory usage: 307.4G (1975% of installed RAM)[/color]
[color=green][OK] Slow queries: 0% (15/840K)[/color]
[OK] Highest usage of available connections: 29% (44/151)
[OK] Key buffer size / total MyISAM indexes: 2.0G/5.9M
[OK] Key buffer hit rate: 99.9% (1M cached / 721 reads)
[color=green][OK] Query cache efficiency: 24.0% (100K cached / 420K selects)[/color]
[!!] Query cache prunes per day: 2428
[OK] Sorts requiring temporary tables: 0% (8 temp sorts / 18K sorts)
[!!] Joins performed without indexes: 20848
[OK] Temporary tables created on disk: 17% (5K on disk / 32K total)
[OK] Thread cache hit rate: 99% (50 created / 46K connections)
[OK] Table cache hit rate: 52% (348 open / 663 opened)
[OK] Open file limit used: 4% (179/4K)
[OK] Table locks acquired immediately: 100% (465K immediate / 465K locks)
[OK] InnoDB data size / buffer pool: 1.2G/2.0G

-------- Recommendations -----------------------------------------------------
General recommendations:
    Run OPTIMIZE TABLE to defragment tables for better performance
    Reduce your overall MySQL memory footprint for system stability
    Enable the slow query log to troubleshoot bad queries
    Increasing the query_cache size over 128M may reduce performance
    Adjust your join queries to always utilize indexes
Variables to adjust:
  *** MySQL's maximum memory usage is dangerously high ***
  *** Add RAM before increasing MySQL buffer variables ***
    query_cache_size (> 512M) [see warning above]
    join_buffer_size (> 2.0G, or always use indexes with joins)




Буду очень вам признателен если вы мне подскажите каким образом можно логировать запросы в которых не использовались индексы.
...
Рейтинг: 0 / 0
Оптимизация MySQL по результатам mysqltuner.pl
    #38272664
Inside22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Текущие значения:

max_heap_table_size=16M
tmp_table_size=16M

Увеличу до:

max_heap_table_size=64M
tmp_table_size=64M

через пару дней проверю разницу в анализе mysqltuner-a.
...
Рейтинг: 0 / 0
Оптимизация MySQL по результатам mysqltuner.pl
    #38272672
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inside22
Код: sql
1.
2.
3.
[--] Data in MyISAM tables: 26M (Tables: 64)
[OK] Key buffer size / total MyISAM indexes: 2.0G/5.9M
[OK] Key buffer hit rate: 99.9% (1M cached / 721 reads)

Ну и зачем нам такой тюнинг в Воронежском зоопарке? (с)

И join_buffer_size зачем так задран? Чем значение по умолчание не нравится?
...
Рейтинг: 0 / 0
Оптимизация MySQL по результатам mysqltuner.pl
    #38272677
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inside22Текущие значения:

max_heap_table_size=16M
tmp_table_size=16M

Увеличу до:

max_heap_table_size=64M
tmp_table_size=64M

через пару дней проверю разницу в анализе mysqltuner-a.Последите за размером временных файлов, обычно они создаются в /tmp.
Если файлов много и/или они большие, то эти величины лучше увеличить.
...
Рейтинг: 0 / 0
Оптимизация MySQL по результатам mysqltuner.pl
    #38272678
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inside22Буду очень вам признателен если вы мне подскажите каким образом можно логировать запросы в которых не использовались индексы. http://dev.mysql.com/doc/refman/5.5/en/slow-query-log.html log_queries_not_using_indexes must be enabled
...
Рейтинг: 0 / 0
Оптимизация MySQL по результатам mysqltuner.pl
    #38272684
Inside22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавляю логирование медленных запросов которые были выполнены без использования индексов.

log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
...
Рейтинг: 0 / 0
Оптимизация MySQL по результатам mysqltuner.pl
    #38272694
Inside22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftInside22
Код: sql
1.
2.
3.
[--] Data in MyISAM tables: 26M (Tables: 64)
[OK] Key buffer size / total MyISAM indexes: 2.0G/5.9M
[OK] Key buffer hit rate: 99.9% (1M cached / 721 reads)

Ну и зачем нам такой тюнинг в Воронежском зоопарке? (с)

И join_buffer_size зачем так задран? Чем значение по умолчание не нравится?

Я правильно понимаю, key_buffer_size используется только при работе с MyISAM базой данных?

Это я в самом начале своего пути понатыкал максимальные значения... а сейчас каждую конфигурацию изучаю :-)
...
Рейтинг: 0 / 0
Оптимизация MySQL по результатам mysqltuner.pl
    #38272705
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inside22Я правильно понимаю, key_buffer_size используется только при работе с MyISAM базой данных?Да.
Чтобы про каждый параметр не переспрашивать - вот справочник .
...
Рейтинг: 0 / 0
Оптимизация MySQL по результатам mysqltuner.pl
    #38492921
morgot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не создавать новую тему, спрошу здесь. Есть база данных около гигабайта, MyISAM, изменять ее структуру не могу, могу лишь настраивать параметры Mysql-сервера. Тюнер пишет такое:

[!!] Highest connection usage: 99% (109/110)
[!!] Query cache prunes per day: 22868
[!!] Joins performed without indexes: 31442
[!!] Table cache hit rate: 1% (309 open / 26K opened)


Это очень плохо? И можно ли что-то поменять, учитывая что структуру БД (добавить индексы эти) я вряд ли смогу поменять (это цмс, и там наверное надо все переписывать).
...
Рейтинг: 0 / 0
Оптимизация MySQL по результатам mysqltuner.pl
    #38492929
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
morgot,

Сколько времени отработал MySQL к моменту снятия показаний?
...
Рейтинг: 0 / 0
Оптимизация MySQL по результатам mysqltuner.pl
    #38492945
morgot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft, авторUp for: 1d 18h 38m 3s
...
Рейтинг: 0 / 0
Оптимизация MySQL по результатам mysqltuner.pl
    #38492957
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
morgot,

Это примерно 153000 секунд.
Получается в среднем каждые 5 секунд выполняется запрос с join-ом без индексов. Много это или мало пока сказать нельзя, возможно это копеечный запрос. Но, имхо, стоит исследовать этот вопрос. Включите slow_query_log и log_queries_not_using_indexes и посмотрите, что туда нападает.

Highest connection usage: 99% - тоже нехорошо, но это, скорее всего, лишь следствие каких-то тормозов.

Table cache hit rate: 1% - маловато, попробуйте увеличить table_open_cache (table_cache в старых версиях) в несколько раз.
...
Рейтинг: 0 / 0
Оптимизация MySQL по результатам mysqltuner.pl
    #38493283
morgot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft, включил slow_query_log на зеркале, т.е. на ресурсе без посетителей, чтобы там экспериментировать. Поймал 2 запроса, на 8 и 13 секунд. К сожалению, не могу понять, можно ли что-то оптимизировать, так как запрос сложный, но вероятно на него жалуется Mysql tuner (JOIN без индекса).

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT lmr.id_member, lmr.id_msg, t.id_topic
                FROM table_topics AS t
                        INNER JOIN table_log_mark_read AS lmr ON (lmr.id_board = t.id_board
                                AND lmr.id_msg > t.id_first_msg AND lmr.id_msg > 487040)
                        LEFT JOIN table_log_topics AS lt ON (lt.id_topic = t.id_topic AND lt.id_member = lmr.id_member)
                WHERE t.id_topic IN (15242)
                        AND lmr.id_msg > IFNULL(lt.id_msg, 0);



Второй раза в три больше. Phpmyadmin пишет, что в таблицах нет индексов и primary key, может стоит добавить? Там действительно идут просто значения, без нумерации. Могу привести структуру таблицы или еще какие-нибудь данные.
...
Рейтинг: 0 / 0
Оптимизация MySQL по результатам mysqltuner.pl
    #38493298
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМогу привести структуру таблицы или еще какие-нибудь данные.
explain запроса давай.
...
Рейтинг: 0 / 0
Оптимизация MySQL по результатам mysqltuner.pl
    #38493478
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
morgotизменять ее структуру не могу, могу лишь настраивать параметры Mysql-сервера.
достаточно. можно сразу в сад.
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация MySQL по результатам mysqltuner.pl
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]