Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему запросы выполняются медленно?? 
:(
    Опции темы
Bulat
Дата 21.9.2007, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



Работаю с версией 3.23.58

Заметил такую особенность, что порой даже самые тривиальные запросы, вытащить несколько строк, по паре столбцов, допустим из двух таблиц, отрабатывают очень долго. Но в этих запросах присутствуют такие функции как ORDER BY ... DESC или LIMIT. Вообще количество данных в самих таблицах не очень большое, пока. Таблицы индексированы, с ключами, реляционная БД. При этом более сложные запросы, где нужно вытащить большое количество(5-6 столбцов, допустим строк 100) данных из 5-6 таблиц, в одном запросе отрабатывают довольно быстро. Таблицы по сути одни и те же.




--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
comcon1
Дата 22.9.2007, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: нет
Всего: 17



покажи запросы, как индексирована, тип таблицы. С телепатией проблемы. ед-е, что может влиять на скорость - это order by, лимит - нет. попробуй переделать ключ, по которому сортируешь.


--------------------
PM MAIL   Вверх
Bulat
Дата 24.9.2007, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



comcon1 ,

Код

SELECT Characters.link_id, Links.remark, description FROM Characters INNER JOIN Links USING (link_id) WHERE Characters.link_id IN ($links)

CREATE TABLE `Links` (
  `id` mediumint(5) unsigned NOT NULL auto_increment,
  `url_id` mediumint(5) unsigned NOT NULL default '0',
  `lang_id` mediumint(5) unsigned NOT NULL default '0',
  `direction_id` mediumint(5) unsigned NOT NULL default '0',
  `link_id` mediumint(5) unsigned NOT NULL default '0',
  `link` varchar(255) NOT NULL default '',
  `remark` varchar(128) default NULL,
  `operation_date` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`link_id`),
  UNIQUE KEY `url_id` (`url_id`,`lang_id`,`direction_id`,`link_id`,`link`,`remark`),
  KEY `id` (`id`)
) TYPE=MyISAM

CREATE TABLE `Characters` (
  `character_id` mediumint(5) unsigned NOT NULL auto_increment,
  `link_id` mediumint(5) unsigned NOT NULL default '0',
  `description` blob,
  `version` varchar(10) NOT NULL default '',
  `platform` varchar(30) NOT NULL default '',
  `price` varchar(15) NOT NULL default '',
  `date` varchar(15) NOT NULL default '',
  `author` varchar(40) NOT NULL default '',
  `reallink` varchar(128) NOT NULL default '',
  PRIMARY KEY  (`character_id`),
  UNIQUE KEY `link_id` (`link_id`,`description`(1),`version`,`platform`,`price`,`date`,`author`,`reallink`)
) TYPE=MyISAM


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

тип MyISAM

кстати, причем здесь телепатия???
Я как бы не первый месяц работаю с бд, и не первый год даже. Раньше работал с 4 версией, там данный запрос выполнялся быстро, здесь может затянутся вплоть до предела, до 9 - 10 секунд...


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Bulat
Дата 24.9.2007, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



Мой вопрос относился как бы к более глобальным настройкам MySQL, нежели к локальному - к моим таблица и индексам. Ибо 
Код

 Query   | 61   | Sending data | SELECT Translator.link_id, Translator.en FROM Translator WHERE Translator.link_id IN (9955,10364,10001,9995) 


тривиальнейший заппрос. (Таблицы также индексированы и с ключами)

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


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
muzer
Дата 24.9.2007, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 31.8.2006

Репутация: 30
Всего: 31



А что говорят 
Код

EXPLAIN SELECT Translator.link_id, Translator.en FROM Translator WHERE Translator.link_id IN (9955,10364,10001,9995);

Код

SHOW TABLE STATUS LIKE 'Translator';

и 
Код

SHOW STATUS LIKE 'key%';


Ну и в целом, как себя чувствует сам сервер? Что free говорит, если меряете остальные параметры, то можно посмотреть на средний iowait - может быть вам диска не хватает, а памяти мало, что с cpu "user" "system" - может в процы упираетесь и т.д.
PM WWW   Вверх
Bulat
Дата 25.9.2007, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



Код

EXPLAIN SELECT Translator.link_id, Translator.en FROM Translator WHERE Translator.link_id IN (9955,10364,10001,9995);


Код

+------------+-------+---------------+---------+---------+------+------+------------+
| table      | type  | possible_keys | key     | key_len | ref  | rows | Extra      |
+------------+-------+---------------+---------+---------+------+------+------------+
| Translator | range | link_id       | link_id |       3 | NULL |    4 | where used |
+------------+-------+---------------+---------+---------+------+------+------------+


Код

SHOW TABLE STATUS LIKE 'Translator';


Код

+------------+--------+------------+-------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+----------------+---------+
| Name       | Type   | Row_format | Rows  | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time         | Check_time | Create_options | Comment |
+------------+--------+------------+-------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+----------------+---------+
| Translator | MyISAM | Fixed      | 10136 |             21 |      212856 |     90194313215 |       146432 |         0 |          10137 | 2007-09-21 11:21:29 | 2007-09-24 17:27:25 | NULL       |                |         |
+------------+--------+------------+-------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+----------------+---------+


Код

SHOW STATUS LIKE 'key%';


Код

+--------------------+-----------+
| Variable_name      | Value     |
+--------------------+-----------+
| Key_blocks_used    | 7793      |
| Key_read_requests  | 192101042 |
| Key_reads          | 43227     |
| Key_write_requests | 39457460  |
| Key_writes         | 2041825   |
+--------------------+-----------+


Цитата(muzer @  24.9.2007,  21:19 Найти цитируемый пост)
как себя чувствует сам сервер

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


Цитата(muzer @  24.9.2007,  21:19 Найти цитируемый пост)
Что free говорит, если меряете остальные параметры, то можно посмотреть на средний iowait - может быть вам диска не хватает, а памяти мало, что с cpu "user" "system" - может в процы упираетесь и т.д. 

А вот про это можно поподробнее и как это все посмотреть, узнать. Знаний о мускуле не мало, но они не такие глубокие smile

Добавлено через 2 минуты и 3 секунды
muzer, в целом, то, что даже такие тривиальные запросы медленно выполняются, то это не всегда так. Это как бы сказать от случая к случаю, иной раз удовлетворительно, иной раз очень плохо. 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
comcon1
Дата 27.9.2007, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 11.6.2005
Где: Москва ДАС-МГУ

Репутация: нет
Всего: 17



Цитата(Bulat @  24.9.2007,  15:04 Найти цитируемый пост)
переделать ключ, хм ни разу не слышал, что тип ключа может влиять на скорость запроса, отсутствие последнего - да....


Я столкнулся один раз. Когда поменял в сервере параметр минимального размера слова (FULLTEXT ключ). Пришлось переделать ключ. То есть удалить и создать снова, не знаю мож есть команда.


--------------------
PM MAIL   Вверх
Bulat
Дата 28.9.2007, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: нет
Всего: 57



Цитата(comcon1 @  27.9.2007,  23:36 Найти цитируемый пост)
Я столкнулся один раз. Когда поменял в сервере параметр минимального размера слова (FULLTEXT ключ). Пришлось переделать ключ. То есть удалить и создать снова, не знаю мож есть команда. 

Нет, про это я знаю, тут другое....

Как правило с такими проблемами сталкиваешься в момент долгого выполнения запросов INSERT, там куча моментов, также относительно текстовых полей. Как раз из-за того, что не резервируется четкая и точнее количество места, или проще говоря если можно использовать тип CHAR, то лучше использовать его вместо VARCHAR....

У меня ведь проблемы-то в другом, порой запросы на селект могут работать долго.... Насколько загружен сам мускул, я сказать не могу, права лишь к своей базе есть.... Но подозреваю, что все же можно, где-то, что-то изменить, настрйки какие, или хотя бы касающиеся только моего юзера, и все будет работать гораздо быстрее smile

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


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.