Details
-
Improvement
-
Resolution: Unresolved
-
Medium
-
2.5.25, 3.3.11
-
eZ Platform Enterprise, Ibexa Content
-
Yes
Description
Description:
If you enable the urlwildcard, every single uri or url requested from the front end of the app will be queried in database. Basically, if you request /foo on the front, the urlwildcard will be hit in order to check if /foo exists.
Steps to reproduce:
1. Activate mysl general log:
#set this [mysqld] general_log_file = /var/log/mysql/mysql.log general_log = 1
#to check if general log is well enabled (you should get this) mysqld --verbose --help |grep general general-log TRUE general-log-file /var/log/mysql/mysql.log
2. Enable urlwildcard:
ezplatform:
url_wildcards:
enabled: true
3. Go to admin and create a content, for instance article-1
4. Go to the front end to domain/siteaccess/article-1
Then check in general log file this entry:
Query SELECT id, destination_url, source_url, type FROM ezurlwildcard WHERE source_url = 'article-1'
This is a performance issue because, every single uri requested will hit the urlwildcard.
Expected result:
If I request /article-1: If /article-1 is a valid route, I'm redirected to the appropriate route. If the router does not find this route, then, and only in this case, a query will be done on urlwilward in order to check if the path is linked to a content route.
Today, every uri hit the urlwildcard table.