@GenuineSounds posted:
I'm not sure if MD uses SQL or something similar but as long as the queries are simple, performance isn't usually an issue. Doing something like a tag exclusion/inclusion search is trivial for a database. It would render the same performance as sorting as we have it now. Obviously the caching mechanisms are helping the normal sorting at the moment but unless a user had a bunch of inclusive search parameters it wouldn't affect performance at all.
Tag exclusion by itself is, while not
trivial, not really a problem. The randomizer however takes into account the user's language filter and looks only for manga with at least one chapter in one of the selected languages (meaning the query has to look through all the chapters, not just the manga entries), and now we're also adding H as a variable to that mix. It all adds up to quite a bit of table joining.
That's why proper caching is going to be important. While it wouldn't be a much of an issue to let this work uncached since the random manga requests are normally quite rare, doing that would open up a gaping attack vector for DDoS'ers.