我正在使用 Oracle 11g。以下语句需要大约 3 秒的时间来执行:
select case when regexp_like(
'blahblahblahblah.blah@blah-blah.blah.gov.uk',
'^[\-a-zA-Z0-9_''^&\+\?\:]+(\.?[\-a-zA-Z0-9_''^&\+\?\:]+)*@([a-zA-Z0-9]+\.)+[a-zA-Z]{2,3}$')
then 'true' else 'false' end
向电子邮件地址添加另一个字符:
'blahblahblahblah.blahx@blah-blah.blah.gov.uk'
需要 6 秒。另一个字符 12,然后是 24、48,依此类推。所以:
'blahblahblahblah.blahxxxxx@blah-blah.blah.gov.uk'
运行大约需要 96 秒。
但是,删除连字符:
'blahblahblahblah.blahxxxxx@blahblah.blah.gov.uk'
它立即运行。
有人知道这里发生了什么吗?