|
|
|
долго выполняется SELECT
|
|||
|---|---|---|---|
|
#18+
Привет, всем. У меня есть таблица с данными по месяцам. Нужно выбрать данные за квартал, так чтобы месяца были в столбцах. Делаю запрос: Код: plaintext 1. Статей всего около 450.(т.е. 450 записей для каждого месяца. ИМХО очень не много). Без индекса запрос выполнялся около 3 минут. Построил индекс составной (year, month, stat_id). Запрос теперь выполняется окло 20 сек. Как можно ускорить выполнение запроса ? Может индекс нужен другой ? Может быть эту задачу можно решить другим запросом ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 10:54:26 |
|
||
|
долго выполняется SELECT
|
|||
|---|---|---|---|
|
#18+
Так должно быть быстрее : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 12:31:24 |
|
||
|
долго выполняется SELECT
|
|||
|---|---|---|---|
|
#18+
Прошу прощения. Не тот запрос. ;-)) Вот исправленный : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 12:35:18 |
|
||
|
долго выполняется SELECT
|
|||
|---|---|---|---|
|
#18+
max(id)Прошу прощения. Не тот запрос. ;-)) Вот исправленный : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Я так понимаю результаты этого запроса нельзя редактировать ? По крайней мере у меня редактировать не получилось (даже без SUM)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 14:02:36 |
|
||
|
долго выполняется SELECT
|
|||
|---|---|---|---|
|
#18+
Мб EXPLAIN для запроса приведёте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2005, 16:04:31 |
|
||
|
долго выполняется SELECT
|
|||
|---|---|---|---|
|
#18+
DocAlМб EXPLAIN для запроса приведёте? Вот пожалуйста: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 08:07:43 |
|
||
|
долго выполняется SELECT
|
|||
|---|---|---|---|
|
#18+
DocAlМб EXPLAIN для запроса приведёте? Интересная штука этот Explain. Где бы почитать о его использовании ? Как расшифровать полученную табличку ? Добавил индекс на поле stat_id. Получился такой EXPLAIN: Код: plaintext 1. 2. 3. Если создать индекс только по полю month (вместо indx2=year, month, stat_id), то EXPLAIN: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 08:42:55 |
|
||
|
долго выполняется SELECT
|
|||
|---|---|---|---|
|
#18+
Ну так тройное перемножение, неудивительно, что запрос не быстрый... Честно говоря, так и не понял, какие индексы у вас уже созданы, но на первый взгляд нужны два: (year, month, stat_id) и (month, stat_id). Насчёт же EXPLAIN почитать стоит в официальной документации на сайте разработчика ( http://dev.mysql.com ), причём рекомендую читать английский вариант, переведённый, к сожалению, во многом устарел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2005, 11:30:15 |
|
||
|
|

start [/forum/topic.php?fid=47&tid=1853720]: |
0ms |
get settings: |
6ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
29ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 348ms |

| 0 / 0 |
