Безбожно тормозит MySQL на винде

Главные вкладки

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 2 ноября 2010 в 1:14

Реально надоело, но с винды уходить не хочется.

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

В общем, други, нужны дельные советы! Куда глядеть, что править?

ВложениеРазмер
Иконка простого текстового файла my.ini_.txt5.63 КБ
Иконка простого текстового файла php.ini_.txt48.94 КБ

Комментарии

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 2 ноября 2010 в 8:04

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

Аватар пользователя xxandeadxx xxandeadxx 2 ноября 2010 в 8:16

"<a href="mailto:Siegfrid@drupal.org">Siegfrid@drupal.org</a>" wrote:
ведь то же самое на ubuntu работает как часы

сравните конфиги, в чём сложность?

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 2 ноября 2010 в 11:00

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

Аватар пользователя Softovick Softovick 2 ноября 2010 в 12:40

PVasili wrote:
Запросы показали бы. Как то не замечено было на локалке особых тормозов в том же денвере...

А ты на том же компе в Ubuntu/Debian пробовал? Я даже на глаз вижу разницу, когда перегружаюсь из винды в Ubuntu

Аватар пользователя PVasili PVasili 2 ноября 2010 в 12:54

"Softovick" wrote:
А ты на том же компе в Ubuntu/Debian пробовал?
нет, и не горю желанием Smile 1 сек и 2 сек для запроса разница не большая.

Аватар пользователя Softovick Softovick 2 ноября 2010 в 13:38

PVasili wrote:
"Softovick" wrote:
А ты на том же компе в Ubuntu/Debian пробовал?
нет, и не горю желанием Smile 1 сек и 2 сек для запроса разница не большая.

Да неужели?

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 3 ноября 2010 в 20:38

по просьбам трудящихся, такой запрос выполняется за 24867.67 ms, на Ubuntu раз в 10ть быстрее...

SELECT DISTINCT node.nid AS nid, node.title AS node_title, node.language AS node_language, node.type AS node_type, users.name AS users_name, users.uid AS users_uid, node.created AS node_created, votingapi_cache_node_percent_average.value AS votingapi_cache_node_percent_average_value, votingapi_cache_node_count.value AS votingapi_cache_node_count_value, node_counter.totalcount AS node_counter_totalcount, node_comment_statistics.comment_count AS node_comment_statistics_comment_count, node.vid AS node_vid FROM node node LEFT JOIN votingapi_cache votingapi_cache_node_percent_average ON node.nid = votingapi_cache_node_percent_average.content_id AND (votingapi_cache_node_percent_average.content_type = 'node' AND votingapi_cache_node_percent_average.value_type = 'percent' AND votingapi_cache_node_percent_average.function = 'average') LEFT JOIN votingapi_cache votingapi_cache_node_count ON node.nid = votingapi_cache_node_count.content_id AND (votingapi_cache_node_count.content_type = 'node' AND votingapi_cache_node_count.function = 'count') LEFT JOIN node node2 ON node.tnid = node2.tnid INNER JOIN content_type_image node_data_field_private_flag ON node.vid = node_data_field_private_flag.vid INNER JOIN users users ON node.uid = users.uid LEFT JOIN node_counter node_counter ON node.nid = node_counter.nid INNER JOIN node_comment_statistics node_comment_statistics ON node.nid = node_comment_statistics.nid WHERE (node.type in ('image')) AND (node_data_field_private_flag.field_private_flag_value = 0) ORDER BY node_created DESC LIMIT 0, 10

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 3 ноября 2010 в 20:45

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

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 3 ноября 2010 в 23:04

Проблема оказалась достаточно простой - длина ключей для строковых параметров таблицы votingapi_cache, после того, когда я задал их величину в 5 символов, то скорость поиска изменилась где то в 440 раз...

Видимо надо будет набросать простенький update для таблиц votingapi и votingapi_cache, чтобы поправить индексы, ну и запостить это дело на drupal.org

Примерно с таблицами получилось это:
CREATE TABLE `votingapi_cache` (
`vote_cache_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`content_type` varchar(64) NOT NULL DEFAULT 'node',
`content_id` int(10) unsigned NOT NULL DEFAULT '0',
`value` float NOT NULL DEFAULT '0',
`value_type` varchar(64) NOT NULL DEFAULT 'percent',
`tag` varchar(64) NOT NULL DEFAULT 'vote',
`function` varchar(64) NOT NULL DEFAULT '',
`timestamp` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`vote_cache_id`),
KEY `content_tag_func` (`content_type`,`content_id`,`tag`,`function`),
KEY `content_function` (`content_type`(5),`content_id`,`function`(5)),
KEY `content_vtype_tag` (`content_type`(5),`content_id`,`value_type`(5),`tag`(5)),
KEY `content_vtype_tag_func` (`content_type`(5),`content_id`,`value_type`(5),`tag`(5),`function`(5)),
KEY `content` (`content_type`(5),`content_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3899 DEFAULT CHARSET=utf8;

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 5 ноября 2010 в 9:57

Косяк оказался куда глубже - в модуле views где то есть проблема, которая выражается в том, что создается дополнительный join таблицы node с сама самой по полю tnid ( LEFT JOIN node node2 ON node.tnid = node2.tnid надо для синхронизации переводов контента на разные языки). Все бы хорошо, да вот не использую я такую фичу, это видно и по самому запросу.

Временный workaround - закоментить файл translation.views.inc на __translation.views.inc и сбросить кеш.

Аватар пользователя Siegfrid@drupal.org Siegfrid@drupal.org 4 ноября 2010 в 19:20

по ходу дела проблема известная:
http://drupal.org/node/940268
http://drupal.org/node/904038
и т.д. - http://drupal.org/search/apachesolr_multisitesearch/node2.tnid%20views

Так что если у вас появилась проблема с производительностью, то весьма возможно это как раз ваш случай