ОТЛИЧНАЯ оптимизация - PullRequest
       1

ОТЛИЧНАЯ оптимизация

0 голосов
/ 01 апреля 2011

При оптимизации этого запроса:

SELECT DISTINCT Order FROM OrderItem

какие планы будут строить различные движки СУБД и какие будут наиболее эффективными?

Ответы [ 2 ]

3 голосов
/ 01 апреля 2011

Это будет зависеть от индексации и базы данных.

  • На сервере sql вы можете проанализировать план запроса в графическом интерфейсе или ключевом слове SHOWPLAN_ALL.1007 * В mysql и pgsql вы можете использовать ключевое слово EXPLAIN в SQL

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

1 голос
/ 01 апреля 2011

MySQL будет использовать сканирование свободного индекса в индексированном поле и временную таблицу или filesort в неиндексированном файле.

Другие двигатели будут использовать SORT GROUP BY или HASH GROUP BY.

Первый обычно более эффективен для индексированного поля, однако издержки сканирования индекса могут быть весьма значительными, поэтому Oracle может предпочесть INDEX FULL SCAN с HASH GROUP BY над ним.

...