|
|
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
Есть таблица: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. P.S. Если даже явно указать use index (ts) этот индекс не используется. И так для любого запроса из этой таблицы, в этих запросах учавствует только промежуток во времени. Таблица оптимизирована была. Спасибо.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2004, 22:13 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
Помогите плиз, хоть намекните в чём проблема может быть??? З.Ы. Запрос используя индексы выполняется 2 минуты, если мы временной промежуток увеличиваем на 1 сек, то этот запрос уже не использует индексы, и запрос выполняется 17 минут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2004, 13:34 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
а если limit написать, что говорит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2004, 16:13 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
Пишет, что индекс будет использоваться, но если судить по кол-ву записей, которые он будет просматривать (столбик row в explain) просматриваться будут все записи. Так что, что есть он что его нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 02:19 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
Дак попробуй _выполнить_ с limit'ом. Andrey_9И так для любого запроса из этой таблицы, в этих запросах учавствует только промежуток во времени. в смысле, для любого временнОго интервала? Или только для последних записей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 07:52 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
Для любого временного интервала, хоть этот временный интервал в начале, хоть в конце, хоть в середине. До определённой разницы во времени ндекс используется, и запрос выполняется 2 минут, и при увеличении этого интервала на 1 секунду индекс не используется и запрос выполняется 18 минут. С накоплением данных этот интервал временной (при котором используется индекс) увеличивается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 14:47 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
Вопрос какую часть (в %) таблицы ты пытаешся просмотреть используя ограничения во времени? Если больше 30% - оптимизатор будет выполнять полное сканирование таблици. Попробуй перестроить индекс. Проверь - может кто то выполнил команду DISABLR KEY и индекс построен только на части данных!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 18:54 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
Есть вариант - использую Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2004, 19:02 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 08:21 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
Да в твоей версии FORCE INDEX не используется. Накати 4.0.20 Но надо еще подумать немного. Код: plaintext В версии MySQL 3.23.12 можно указывать, какие именно индексы (ключи) MySQL должен применять для извлечения информации из таблицы. Это полезно, если оператор EXPLAIN (выводящий информацию о структуре и порядке выполнения запроса SELECT), показывает, что MySQL из списка возможных индексов выбрал неправильный. Если нужно. чтобы для поиска записи в таблице применялся только один из возможных индексов, следует задать значение этого индекса в USE INDEX (key_list). Альтернативное выражение IGNORE INDEX (key_list) запрещает использование в MySQL данного конкретного индекса. В MySQL 4.0.9 можно также указывать FORCE INDEX. Это работает также, как и USE INDEX (key_list) но в дополнение дает понять серверу что полное сканирование таблицы будет ОЧЕНЬ дорогостоящей операцией. Другими словами, в этом случае сканирование таблицы будет использовано только тогда, когда не будет найдено другого способа использовать один из данных индексов для поиска записей в таблице. Выражения USE/IGNORE KEY являются синонимами для USE/IGNORE INDEX. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 16:32 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
use index никак не помогает, что с этим оператором, что без. А обновиться до 4.х к сожалению нет возможности.. :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 17:32 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
А если использовать два последовательных промежутка? Либо в 2-х запросах, либо в 1-ом, соединяя их OR. Правда, в последнем случае оптимизатор может их склеить, убрав OR. З.Ы. Я сие не пробовал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 19:02 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
не работает... но это какое то извращение... Может есть способ этот оптимизатор вырубать на время. А вообще это глюк или что?? Может быть кто-нить знает причину, почему такое происходит??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 22:38 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
Вообще-то в вумной книге сказано, что формат поля TIMESTAMP представляется строкой в виде "YYYYMMDDhhmmss", это DATETIME имеет формат "YYYY-MM-DD hh:mm:ss" Может - попробовать константы привести в запросе в соответствии с представлением полей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2004, 10:47 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
Ничего не меняеся :-( Да и не может наверное от этого быть такая фигня, с определённым же промежутком дат, индекс то используется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2004, 13:29 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
Все это выглядит очень странно... Попробуй analyze table, попробуй дропнуть индекс/пересоздать его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2004, 17:53 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
Чего я только не пробовал удалял, добавлял, делал mysqlcheck -r, потом -a, потом -o. Ну ничего не помогает, я просто не понимаю в чём дело... Что не так.. :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2004, 13:04 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
ANALYZE TABLE tbl_name Может поможет? Импользовать каждый раз, когда база ощутимо выросла. Жизнь коротка - потерпи немного :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2004, 16:41 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
делаю mysqlcheck -r, потом mysqlcheck -a, потом mysqlcheck -o. После этого делаю запрос, толку никакого.. :-(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2004, 17:39 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
1) Какая версия MySQL у тебя используется? На полях DateTime&TimeStamp известный баг с индексами, он поборен в 4.0.16 или 17, точно не помню, сам на него наткнулся... Насчет соединения в версию 3.х не помню, так что либо переходить на 4.х либо мучаться, как промежуточный вариант - попробовать поставить версию 3.х последнюю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2004, 02:39 |
|
||
|
mysql и странности с индексами...
|
|||
|---|---|---|---|
|
#18+
Валентин К1) Какая версия MySQL у тебя используется? На полях DateTime&TimeStamp известный баг с индексами, он поборен в 4.0.16 или 17, точно не помню, сам на него наткнулся... Насчет соединения в версию 3.х не помню, так что либо переходить на 4.х либо мучаться, как промежуточный вариант - попробовать поставить версию 3.х последнюю... Продолжаю мучиться... Используется последняя третья версия. (3.23.58). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2004, 10:09 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=32568650&tid=1854831]: |
0ms |
get settings: |
12ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
184ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 555ms |

| 0 / 0 |
