Hello David Thank you for replying.
2015年12月30日(水) 6:04 David Rowley <david.row...@2ndquadrant.com>: > On 30 December 2015 at 04:21, Hiroyuki Sato <hiroys...@gmail.com> wrote: > >> 2015年12月29日(火) 4:35 Jeff Janes <jeff.ja...@gmail.com>: >> >>> >>> >> But, the planner refuses to use this index for your query anyway, >>> because it can't see that the patterns are all left-anchored. >>> >>> Really, your best bet is refactor your url data so it is stored with a >>> url_prefix and url_suffix column. Then you can do exact matching >>> rather than pattern matching. >>> >> I see, exact matching faster than pattern matting. >> But I need pattern match in path part >> (ie, http://www.yahoo.com/a/b/c/... ) >> I would like to pattern match '/a/b/c' part. >> > > If your pattern matching is as simple as that, then why not split the > /a/b/c/ part out as mentioned by Jeff? Alternatively you could just write a > function which splits that out for you and returns it, then index that > function, and then just include a call to that function in the join > condition matching with the equality operator. That'll allow hash and merge > joins to be possible again. > Could you tell me more detail about Alternatively part? It is good idea to split host and part. I'll try it. My matching pattern is the following 1, http://www.yahoo.com/a/b/% (host equal, path like) 2, http://%.yahoo.com/a/b/% (host and path like ) Can I use equality operator in those cases? Best regards. > > -- > David Rowley http://www.2ndQuadrant.com/ > PostgreSQL Development, 24x7 Support, Training & Services >