Achilleas Mantzios - cloud <a.mantz...@cloud.gatewaynet.com> writes:
> *FreeBSD*
> 
>    ->  Index Only Scan using mail_vessel_addressbook_address_regex_idx 
> on mail_vessel_addressbook  (cost=0.42..2912.06 rows=620 width=32) 
> (actual time=96.704..96.705 rows=1 loops=1)
>          Filter: ('f...@bar.com'::text ~* address_regex)
>          Rows Removed by Filter: 14738
>          Heap Fetches: 0
>          Buffers: shared hit=71
> 
> *Linux*
> 
>    ->  Index Only Scan using mail_vessel_addressbook_address_regex_idx 
> on mail_vessel_addressbook  (cost=0.42..2913.04 rows=620 width=32) 
> (actual time=1768.724..1768.725 rows=1 loops=1)
>          Filter: ('f...@bar.com'::text ~* address_regex)
>          Rows Removed by Filter: 97781
>          Heap Fetches: 0
>          Buffers: shared hit=530

> The file in FreeBSD came by pg_dump from the linux system, I am puzzled 
> why this huge difference in Buffers: shared hit.

The "rows removed" value is also quite a bit different, so it's not
just a matter of buffer touches --- there's evidently some real difference
in how much of the index is being scanned.  I speculate that you are
using different collations on the two systems, and FreeBSD's collation
happens to place the first matching row earlier in the index.

                        regards, tom lane


Reply via email to