iHead

iHead
Рейтинг
137
Регистрация
25.04.2008
Интересы
Hosting (PHP, Bitrix), domains
netwind:
хорошо.
теперь чтобы осмыслить это, переведите на русский и прочитайте.

какое слово вам не понятно?

netwind:
ну и где там написано "откажитесь от join, чтобы не создавались временные таблицы" ?

If there is an ORDER BY clause and a different GROUP BY clause, or if the ORDER BY or GROUP BY contains columns from tables other than the first table in the join queue, a temporary table is created.

iHead добавил 16.11.2011 в 13:19

myhand:
Почему Вы уверены, что такие запросы у ТС - есть?

причины создания временных таблиц известны (ок, соглашусь, что не только из-за джойнов).

раз они создаются, значит такие запросы у ТС есть. значит есть, что оптимизировать :)

netwind:
iHead, в понятии "Реляционная СУБД" слово реляционная означает отношения. То есть join - самая суть РСУБД. Отказываться от join означает отказаться от теории, обеспечивающей простоту, управляемость и, как ни странно, скорость работы СУБД.

Временные таблицы возникают не по причине наличия join в запросах SQL.

Я не говорю, что надо отказываться от отношений. Однако отказ от джойнов на частовыполняемых (криво)написанных запросах, может спасти от создания временных таблиц и ускорить выборку.

О причинах создания временных таблиц можно почитать в мануале.

myhand:
Новый WP с блекджеком и шлюхами? :D

ну, в перспективе нормальные движки к этому и придут.

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

Z-Style:
Ага
[!!] Temporary tables created on disk: 49% (441K on disk / 884K total)

Но тут увеличение кеша под временные таблицы не решат, решил делать tmpfs под временные каталоги mysql

А как к этому относится table_cache ?

перепишите код без джойнов, не будет у вас временных таблиц.

в "Депо" ответили, что цены на hdd, ожидается, нормализуются к марту.

Z-Style:
Изменил table_cache на 1024 но Opened_tables не уменьшается, = 313
Когда table_cache был 256 - Opened_tables даже меньше был.
Не понимаю.

оно и не должно уменьшаться. эти параметры отвечают за то, сколько файловых дескрипторов держать открытыми. есть небольшой оверхед, если серверу придется при каждом обращении к таблице по новой открывать соответствующие ей файлы. при использовании кеша дескрипторов этот оверхед исчезает, но появляется новый - на поиск дескриптора в кеше и обслуживание кеша :)

у нас на серверах table_cache, и table_definition_cache - несколько десятков тысяч.

делайте отладку кода, например, методом половинного деления или подробным логированием происходящего.

Z-Style:
Ну чего же сразу wordpress?))
А какой параметр устанавливает обьем памяти потребляемый mysql?

их много.

попробуйте MySQL Tuning Primer Script

вы логи MySQL посмотрели?

Z-Style:
Кстати, если процессора может и не хватает, то физически памяти еще остается, поэтому врядли эта ошибка возникает из-за большого числа max-connections

если MaxClients и max-connections сбалансированы + поправка на скрипты в кроне и другой софт, юзающий БД, то даже при большой нагрузке на проц, вы не получите ошибку, о которой говорите.

+ вы бы глянули логи MySQL

Всего: 870