To answer your question about improving performance, there's a very simple answer: just blacklist the most common queries you are getting that are hurting your performance.
Grab logfiles for a month or so. Collate the most common attack requests. Something like the following will probably work: grep for requests that return 404 Not Found, find all unique URLs, count how many times each unique URL was accessed, and sort. Take all such commonly-accessed non-existent URLs, and put them in a blacklist. Now configure Apache to immediately block all attempts to access any URL on that blacklist.
A slightly more sophisticated version of this is to collate the most commonly attacked applications (like phpMyAdmin), according to your logs. For each, check whether you have any copy of that application legitimately deployed on your site. If you do not, then add it to a blacklist. Now configure Apache to immediately block all attempts to access any applicationn on that blacklist. This might be a bit broader, but it might take a little bit more work to collate the blacklist to ensure you're not inadvertently blocking any legitimate application on your site.
For this, I don't think you need a centralized blacklist. Your logs should have all the information needed to identify the most commonly accessed non-existing URLs/applications.
Do note that this approach might improve performance but it is unlikely to appreciably improve security.