Что-нибудь быстрее, чем SELECT DISTINCT элемент из DB? - PullRequest
2 голосов
/ 13 ноября 2010

Есть ли альтернатива

SELECT DISTINCT item FROM DB 

Я уже пробовал:

SELECT item FROM DB group by item 

таблица не такая большая (30 000 строк), но эта команда занимает почти 6 секундполный.С другой стороны, другие запросы выполняются очень быстро (0,2 секунды).

Что может происходить?Предложения?

Кстати, вот как я использую его в своей программе:

BDD.addItems([r[0] for r in cursor.execute("SELECT DISTINCT commodity FROM DB")])

Ответы [ 2 ]

9 голосов
/ 13 ноября 2010

убедитесь, что в отдельном столбце есть индекс

0 голосов
/ 07 апреля 2013

0,1 слишком много.

Вы не должны использовать distinct для критически важных запросов.
Вместо этого вы должны нормализовать свою базу данных, храня любые элементы в отдельной таблице, оставляя только ссылки на них в исходной таблице.

И посчитай эти предметы из этой другой таблицы. При правильной индексации это займет менее 0,01

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...