постгрес сосет ослиные хуи

| | Comments (5)
сегодня я с удивлением узнал, что запрос вида: 

SELECT COUNT(DISTINCT foo) FROM bar

может оказаться во много (в моем случае - в пять!) раз медленнее, чем вот такое извращение: 

SELECT COUNT(*) FROM (SELECT DISTINCT foo FROM bar) AS foo 

потому что у постгреса планировщик настолько тупой и убогий, что не в состоянии использовать в первом случае индекс на колонке, блядь. и это еще не предел дебилизма, есть хуже. в некоторых случаях в постгресе не подключаются индексы, если в запросе вида SELECT foo FROM bar не указано ORDER BY foo. это уже просто полный пиздец, извините.

5 Comments

SELECT foo FROM bar

а куда тут индекс?

туда, что у меня таких foo 150 тыщ в таблице. как я писал выше, разница получается в 5 раз.

P.S. собственно, как ты понимаешь в таблице есть не только это самое foo...

а как индекс ускоряет выдачу всех стрк в таблице?

запрос почитай, а? видишь там count и distinct? они не просто так. =)

а, ты про вторую часть. хз как, но ускоряет. не в 5 раз, а где-то в два.

Leave a comment

Random Photos

About this Entry

This page contains a single entry by Andrew Dolgov published on April 11, 2008 1:00 AM.

весна пришла, мать ее was the previous entry in this blog.

internet comic strips is serious business is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.