same OS RHEL8, install pgv14.11 and pgv18.beta1_3, both installation by RPM from pgdg, and use similar postgresql.conf.
14.11 postgres=# create table tt(a int primary key, b text); CREATE TABLE postgres=# do postgres-# $$ postgres$# begin postgres$# for counter in 1..1000000 loop postgres$# insert into tt values(counter,'jamestest'); postgres$# end loop; postgres$# end; postgres$# $$; DO pgv14.11 postgres=# \timing on Timing is on. postgres=# \timing on Timing is on. postgres=# select * from tt where b ~~ 'a%'; a | b ---+--- (0 rows) Time: 61.018 ms postgres=# select * from tt where b ~~ 'a%'; a | b ---+--- (0 rows) Time: 55.082 ms postgres=# select * from tt where b ~~ 'a%'; a | b ---+--- (0 rows) Time: 54.716 ms postgres=# explain select * from tt where b ~~ 'a%'; QUERY PLAN ------------------------------------------------------- Seq Scan on tt (cost=0.00..17906.00 rows=1 width=14) Filter: (b ~~ 'a%'::text) (2 rows) Time: 0.447 ms 18.beta1 postgres=# \timing on Timing is on. postgres=# select * from tt where b ~~ 'a%'; a | b ---+--- (0 rows) Time: 78.532 ms postgres=# select * from tt where b ~~ 'a%' postgres-# ; a | b ---+--- (0 rows) Time: 83.516 ms postgres=# select * from tt where b ~~ 'a%'; a | b ---+--- (0 rows) Time: 77.117 ms psql (18beta1) Type "help" for help. postgres=# explain select * from tt where b ~~ 'a%'; QUERY PLAN ------------------------------------------------------- Seq Scan on tt (cost=0.00..17906.00 rows=1 width=14) Filter: (b ~~ 'a%'::text) (2 rows) Regards, James