|
MySQL.RU - Webboard
Вернуться
Медленно выполняется запрос (potato) 02/04/2009 - 18:06:36
Re: Что показывает EXPLAIN? (-) (Diter) 02/04/2009 - 18:17:10
Re: Медленно выполняется запрос (fahritdin) 02/04/2009 - 20:53:45
Re: Медленно выполняется запрос (potato) 03/04/2009 - 00:44:21
From: potato - 02/04/2009 - 18:06:36
Subject:Медленно выполняется запрос
-----------------
ОС: Ubuntu 8.10
версия mysql: 5.0.67
База состоит из таких таблиц:
mysql> DESC DICTIONARY;
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| word_id | int(11) | NO | PRI | NULL | auto_increment |
| word | varchar(100) | YES | | NULL | |
+---------+--------------+------+-----+---------+----------------+
2 rows in set (0.02 sec)
Таблица слов(слова и их идентификаторы)
mysql> DESC DOCUMENT;
+-----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+----------------+
| document_id | int(11) | NO | PRI | NULL | auto_increment |
| document_name | varchar(200) | YES | | NULL | |
| doc_upload_date | date | YES | | NULL | |
| word_count | int(11) | YES | | NULL | |
| doc_type_id | int(11) | YES | MUL | NULL | |
+-----------------+--------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
Таблица документов(идентификатор документа, его имя,дата загрузки на сервер, количество слов в документе, идентификатор типа документа)
mysql> DESC DOC_TYPE;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| type_id | int(11) | NO | PRI | NULL | auto_increment |
| type_name | varchar(20) | YES | | NULL | |
+-----------+-------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)
Таблица типов документов(идентификатор типа документа, тип документа(pdf,txt,doc))
mysql> DESC WORDS;
+-------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| word_id | int(11) | NO | MUL | NULL | |
| document_id | int(11) | NO | MUL | NULL | |
| word_count | int(11) | YES | | NULL | |
+-------------+---------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
Таблица СЛОВА, описывает какое слово, сколько раз встречаеться в каком документе(ид отношения, ид слова, ид отношения, сколько раз встречается это слово в документе)
mysql> DESC STEMS;
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| stem_id | int(11) | NO | PRI | NULL | auto_increment |
| stem | varchar(50) | YES | | NULL | |
+---------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
Таблица стем(говоря грубо - стэмы это корни, т.е. несколько слов могут иметь один и тот же корень)
mysql> DESC STEMMING_RELATIONS;
+--------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+---------+------+-----+---------+----------------+
| relation_id | int(11) | NO | PRI | NULL | auto_increment |
| stem_id | int(11) | YES | MUL | NULL | |
| dict_word_id | int(11) | YES | MUL | NULL | |
+--------------+---------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
Таблица отношений слов к стемам(ид отношения стеммнига, ид стемы, ид слова)
Запрос должен получить информацию о документах в которых содержаться слова имеющие ту же стему. Документы, которые получаем в результате запроса верны, но запрос исполняется очень долго.
mysql> SELECT DOC1.document_name, DOC1.doc_upload_date, DT1.type_name
-> FROM DICTIONARY DICT1 INNER JOIN STEMMING_RELATIONS SR1 ON DICT1.word_id = SR1.dict_word_id
-> INNER JOIN STEMMING_RELATIONS SR2 ON (SR1.stem_id = SR2.stem_id AND SR1.dict_word_id <> SR2.dict_word_id)
-> INNER JOIN WORDS W1 ON W1.word_id = SR2.dict_word_id
-> INNER JOIN DOCUMENT DOC1 ON DOC1.document_id = W1.document_id
-> INNER JOIN DOC_TYPE DT1 ON DT1.type_id = DOC1.doc_type_id
-> WHERE DICT1.word = 'set';
+----------------------------------------------------+-----------------+-----------+
| document_name | doc_upload_date | type_name |
+----------------------------------------------------+-----------------+-----------+
| rc003-010d-eclipse_start | 2009-03-21 | pdf |
| rc012-010d-glassfish | 2009-03-22 | pdf |
| rc022-010d-jpa_start | 2009-03-23 | pdf |
| 1930110995_-_JUnit_in_Action | 2009-03-28 | pdf |
| Manning-Ant_In_Action_2007 | 2009-03-28 | pdf |
| Eclipse in Action - ISBN 1930110960 | 2009-03-28 | pdf |
| BetterBuildsWithMaven | 2009-03-28 | pdf |
| JavaEE 5.0 Tutorial | 2009-03-28 | pdf |
| [wrox] Professional Apache Tomcat 5 | 2009-03-28 | pdf |
| jbossj2ee | 2009-03-28 | pdf |
| jboss startguide40 | 2009-03-28 | pdf |
| Apress.Pro.Spring.2.5.Aug.2008 | 2009-03-28 | pdf |
| Manning - Spring In Action 2nd Ed Aug.2007 | 2009-03-28 | pdf |
| 2008_Advanced Rails Recipes | 2009-03-29 | pdf |
| Addison Wesley - The Rails Way | 2009-03-29 | pdf |
| Pragmatic Programmers - Rails Recipes | 2009-03-29 | pdf |
| rc003-010d-eclipse_start | 2009-03-21 | pdf |
| rc006-011d-ejb3_injection | 2009-03-21 | pdf |
| rc008-010d-design_patterns | 2009-03-22 | pdf |
| rc026-010d-spring_annotations | 2009-03-23 | pdf |
| rc020-010d-struts2 | 2009-03-23 | pdf |
| rc022-010d-jpa_start | 2009-03-23 | pdf |
| 1930110995_-_JUnit_in_Action | 2009-03-28 | pdf |
| Manning-Ant_In_Action_2007 | 2009-03-28 | pdf |
| Eclipse in Action - ISBN 1930110960 | 2009-03-28 | pdf |
| BetterBuildsWithMaven | 2009-03-28 | pdf |
| [wrox] Professional Apache Tomcat 5 | 2009-03-28 | pdf |
| jbossj2ee | 2009-03-28 | pdf |
| jboss startguide40 | 2009-03-28 | pdf |
| Manning - Spring In Action 2nd Ed Aug.2007 | 2009-03-28 | pdf |
| 2008_Advanced Rails Recipes | 2009-03-29 | pdf |
| Addison Wesley - The Rails Way | 2009-03-29 | pdf |
| Apress - Rails Solutions - Ruby on Rails Made Easy | 2009-03-29 | pdf |
| Pragmatic Programmers - Rails for Java Developers | 2009-03-29 | pdf |
| Ruby on Rails Web Mashup Projects | 2009-03-29 | pdf |
| Wrox - Beginning Ruby on Rails | 2009-03-29 | pdf |
| os-eclipse-jigloo-a4 | 2009-03-29 | pdf |
| rc003-010d-eclipse_start | 2009-03-21 | pdf |
| rc008-010d-design_patterns | 2009-03-22 | pdf |
| rc020-010d-struts2 | 2009-03-23 | pdf |
| rc021-010d-jsf | 2009-03-23 | pdf |
| rc022-010d-jpa_start | 2009-03-23 | pdf |
| rc024-010d-core_java | 2009-03-23 | pdf |
| 1930110995_-_JUnit_in_Action | 2009-03-28 | pdf |
| Manning-Ant_In_Action_2007 | 2009-03-28 | pdf |
| Eclipse in Action - ISBN 1930110960 | 2009-03-28 | pdf |
| BetterBuildsWithMaven | 2009-03-28 | pdf |
| [wrox] Professional Apache Tomcat 5 | 2009-03-28 | pdf |
| jbossj2ee | 2009-03-28 | pdf |
| jboss startguide40 | 2009-03-28 | pdf |
| Manning - Spring In Action 2nd Ed Aug.2007 | 2009-03-28 | pdf |
| 2008_Advanced Rails Recipes | 2009-03-29 | pdf |
| Pragmatic Programmers - Rails for Java Developers | 2009-03-29 | pdf |
| Pragmatic Programmers - Rails for PHP Developers | 2009-03-29 | pdf |
+----------------------------------------------------+-----------------+-----------+
54 rows in set (21.31 sec)
Каким образом можно уменьшить время исполнения запроса?
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
35298
|
|