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