1. Can't easily edit information in the database
True, so if you use phpmyadmin for editing - don't do what I suggested.
2. Can't display raw for the user (e.g. edit a forum post)
Edit a forum? You display the data in TEXTAREA...
3. Uses more space in the DB
although I use htmlspecialchars() which doesn't replace that many
4. Isn't as easily indexed
5. Breaks il8n support of internal search engines (sphinx, lucene, etc.)
Thanks for reply, I will still do it before the DB insert.
Btw. I should have mentioned I don't use htmlentities(), but
You're NEVER supposed to santize before inserting in the DB. Ever.
Regarding the "performance" boost, if your application is written so
well that calling htmlentities() is hurting the performance, I bow to
you as writing the highest performing PHP I've ever seen. I would bet
money that validation and sanitization, even if overdone, wouldn't
take more than 2 or 3 percent of execution time.
Do NOT do this, OP, it's terrible practice.