|
|
|
Помогите исправить простой запрос
|
|||
|---|---|---|---|
|
#18+
Спасибо! Классная штука, этот составной индекс. Еще вопрос появился. Запрос: Код: sql 1. 2. 3. В зависимости от условия Where messages.nik = '*****' меняется план запроса. Если в ковычках поставить значение которое часто встречается в колонке таблицы, то в плане запроса видно что индекс по этой колонке не используется. Если значение встречается редко или вообще не встречается, то индекс используется. Почему так? Разве оптимизатор знает какое значение сколько раз используется до того как выполнит запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2013, 13:28:25 |
|
||
|
Помогите исправить простой запрос
|
|||
|---|---|---|---|
|
#18+
D_PavelРазве оптимизатор знает какое значение сколько раз используется до того как выполнит запрос?Да! Прочитайте уже оф.доку про индексы , что ли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2013, 17:50:37 |
|
||
|
Помогите исправить простой запрос
|
|||
|---|---|---|---|
|
#18+
Зачем советовать читать текст на английском языке, если там не слова нет про то что я спросил!? Я потратил время впустую. Модератор: Даже если ссылка с Вашей точки зрения не годна, это еще не повод переходить на личности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 06:30:54 |
|
||
|
Помогите исправить простой запрос
|
|||
|---|---|---|---|
|
#18+
MySQL у меня версии 5.5.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 06:33:56 |
|
||
|
Помогите исправить простой запрос
|
|||
|---|---|---|---|
|
#18+
D_PavelЗачем советовать читать текст на английском языкеНа русском языке не существует приличной доки по современным версиям MySQL. На остальные языки тоже происходит перевод, качество которого неизвестно. Так что английский вариант - самый правильный. D_Pavelесли там не слова нет про то что я спросил!? Я потратил время впустую.Ну не так чтобы совсем ни слова...How MySQL Uses IndexesSometimes MySQL does not use an index, even if one is available. One circumstance under which this occurs is when the optimizer estimates that using the index would require MySQL to access a very large percentage of the rows in the table. (In this case, a table scan is likely to be much faster because it requires fewer seeks.) Еще вот такая ссылка пригодится: http://dev.mysql.com/doc/refman/5.5/en/analyze-table.html ANALYZE TABLE analyzes and stores the key distribution for a table. ... MySQL uses the stored key distribution to decide the order in which tables should be joined when you perform a join on something other than a constant. In addition, key distributions can be used when deciding which indexes to use for a specific table within a query. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 10:27:29 |
|
||
|
Помогите исправить простой запрос
|
|||
|---|---|---|---|
|
#18+
D_PavelРазве оптимизатор знает какое значение сколько раз используется до того как выполнит запрос?SQL накапливает статистику по всем таблицам и индексам. Так что да, он может предположить, сколько строк будет получено в результате того или иного запроса, и выбрать на основе этого предположения наименее затратный способ извлечь эти данные. Как правило, оценка достаточно точная для построения оптимального плана выполнения, но бывает, что статистика неверна и фактическое число строк отличается от предполагаемого на порядки - в этом случае построенный план оптимальным не будет. По MySQL не нашел хорошей ссылки, но вот есть про Использование статистики оптимизатором запросов Microsoft SQL Server 2005 Конечно, в MySQL (с версионностью) что-то делается не так, но общие принципы, ятд, остаются в силе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 11:02:52 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38492206&tid=1835574]: |
0ms |
get settings: |
4ms |
get forum list: |
19ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
68ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 364ms |

| 0 / 0 |
