Since the SVG is essentially static and not expected to change, it would seem more efficient to have it be compressed once and be done with it vs leaving it up to the web server to handle the compression. My 2 cents
Maybe an md5/sha1 of the heading content and post number would make a better URL hash for the link. Then the worst case for linking is you could only use that same heading content once within the same post, instead of once within the same thread page
Multiple headings with the same text will generate identical link hashes so it's not possible to link to subsequent headings with the same text in different posts on the same page
A big plus for the one-to-many table would be that you can have an arbitrary number of meta data items for each IP. Country and region like was mentioned but also zip code, long/lat or other geospatial data one may have access to for a user's IP.
Just to complicate things for you guys, https://www.elastic.co/downloads/past-releases/elasticsearch-5-6-16 which one of our servers is running includes 2.11.1. Not sure at which version the 5 series started including 2.11.1
CloudFlare's log4j mitigation write up says
In addition to Elasticsearch versions 6.4 and above, it appears many versions below 6.4 include log4j 2.11.1, which would quality for the formatMsgNoLookups mitigation method. Check for the existence of...