- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день!
Установлен MYsql версия 5.5.54-0
База порядка 400 мб, есть одна таблица, с кол-вом данных от 1 млн. записей.
После завершения обновления данных в базе, процессор работает на всю.
И далее в процессах зависают много процессов:
Copying to tmp table SELECT DISTINCT wp_posts.ID FROM wp_term_taxonomy, wp_posts, wp_term_relationships WHERE
(Если брать новую базу с меньшим объемом данных, то все нормально.)
При этом ждал и час, два, толку нету.
Потом перезагрузка, и опять тоже самое, т.е. даже перезагрузка не помогает.
Установил tmp_table_size и max_heap_table_size по нулям. Всё вроде нормально стало.
При этом mysqltuner почемуто просил их хорошо увеличить...
Вопрос, установка по нулям значений - это нормально?
Сервер современный с 2 ядрами и SSD
Спасибо
yura5, sql запрос неполный написали, что после where? есть ли группировка? в мануалах и пишут что параметр tmp_table_size отвечает за ускорение обработки группирующих запросов (если я правильно понял), из-за того что вы обнулили, вероятно, вы дали разрешение использовать максимально возможное значение, поэтому все и виснет.
теоретически mysqltuner фигни не посоветует.
Надо кешировать результат этого запроса, скажем на несколько часов...
yura5, укажите еще так - tmpdir = /dev/shm, что бы временные таблицы создавались в памяти.
1. Запрос не полный
2. SHOW PROCESSLIST в Mysql вряд ли адекватный :)
3. Вы отключили временные таблицы в памяти, они будут создаваться сразу на диске.
4. EXPLAIN в студию
Так запросы не пишут!
Тут может быть полное объединение таблиц :)
Нужно использовать JOIN:
Если помогло, то ок. :)
У самого часто висят запросы с такой информацией в SHOW PROCESSLIST.
Дивно, что отключение временные таблиц в памяти решило проблему. :)
Полный запрос:
---------- Добавлено 08.02.2017 в 14:18 ----------
yura5, из-за того что вы обнулили, вероятно, вы дали разрешение использовать максимально возможное значение, поэтому все и виснет.
.
Так наоборот, вещало mysql раньше, когда значения была больше нуля.
Сейчас поставил 0 вроде нормально
Не понятно почему...
---------- Добавлено 08.02.2017 в 14:19 ----------
Надо кешировать результат этого запроса, скажем на несколько часов...
А что это даст, если таких запросов сотни... или тысячи
---------- Добавлено 08.02.2017 в 14:20 ----------
yura5, укажите еще так - tmpdir = /dev/shm, что бы временные таблицы создавались в памяти.
Нужно заменить строку:
???
---------- Добавлено 08.02.2017 в 14:22 ----------
1. Запрос не полный
2. SHOW PROCESSLIST в Mysql вряд ли адекватный :)
3. Вы отключили временные таблицы в памяти, они будут создаваться сразу на диске.
4. EXPLAIN в студию
Так запросы не пишут!
Тут может быть полное объединение таблиц :)
Нужно использовать JOIN:
Если помогло, то ок. :)
У самого часто висят запросы с такой информацией в SHOW PROCESSLIST.
Дивно, что отключение временные таблиц в памяти решило проблему. :)
Спасибо
Запрос полный выше, посмотрите пожалуйста.
Проблема в том, программист который делал это все, ушел.
Можно ли решить проблему увелечением join_buffer_size? Или еще как-то
Нужно заменить строку:
Да, и следует убедиться, что памяти есть свободных tmp_table_size МБ
Можно ли решить проблему увелечением join_buffer_size? Или еще как-то
Подобные проблемы лучше решать оптимизацией запросов или структуры БД, чем добавлением ресурсов.
Это самописный запрос или CMS его сама генерирует?
Какой EXPLAIN у Вашего и моего запроса?
Мой
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE wp_term_taxonomy ref PRIMARY,term_id_taxonomy term_id_taxonomy 8 const 1 Using temporary
1 SIMPLE wp_term_relationships ref PRIMARY,term_taxonomy_id term_taxonomy_id 8 site-bd.wp_term_taxonomy.term_taxonomy_id 90
1 SIMPLE wp_posts eq_ref PRIMARY,type_status_date PRIMARY 8 site-bd.wp_term_relationships.object_id 1 Using where
Ваш запрос:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE T ref PRIMARY,term_id_taxonomy term_id_taxonomy 8 const 1 Using temporary
1 SIMPLE R ref PRIMARY,term_taxonomy_id term_taxonomy_id 8 site-bd.T.term_taxonomy_id 90
1 SIMPLE P eq_ref PRIMARY,type_status_date PRIMARY 8 site-bd.R.object_id 1 Using where
---------- Добавлено 10.02.2017 в 18:44 ----------
Запрос самописный, отдельный скрипт заливает данные в БД
EXPLAIN-ы как бы одинаковые.
Только я хз, почему
в первой таблице "const 1 Using temporary"
То есть выбирается по индексу 1 строка, но используются временные таблицы :)
Можно запрос переписать так: