Search Postgresql Archives

Re: ERROR: invalid value "????" for "YYYY"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/09/2013 05:57 PM, Brian Wong wrote:
But from a user's perspective, why would it ever make sense that by adding an additional where clause, it actually brings in more data into the picture? If I have query returning 100 rows. Adding an additional where clause should only cut down the number of rows, not increase it.
...

It may be a bit surprising at first when one does not consider they are looking at a view, not at a table, but for the planner to do its job of returning the data you want efficiently it must be allowed to optimize your request by rewriting it into a logically equivalent form. For example, given something like ...where eventtime > abstime(12334554321)... the planner will detect that abstime(1234554321) will always return the same result and will calculate that value once, not redo it once for every row.

The idea that you are just reducing the number of rows doesn't mean that doing things in that order is efficient. Imagine that you had a view that returned the records of all males from a table of all people in the US that includes an indexed birthday field as MMDD. This view would return a bit over 155-million rows - roughly 50% of the approximately 310-million US population. You then query that view to find men who have a birthday today. It is obviously suboptimal to first retrieve 155-million records from disk then evaluate those for the appropriate birthday when you can, instead, start by grabbing 1/365th or less than 1-million rows which can be efficiently returned using the index then evaluate those records for male/female.

It's sort of like sending someone to the store with a shopping list - you have no expectation that they will fill the cart in the order you put things on the list, just that they will come back with the items on the list.

Cheers,
Steve



--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux