Можно попробовать так: стоит mysql-мастер с которым работают пользователи, и есть слейв, у которого таблички с типом MEMORY и ваш анализатор трафика юзает слейв.
Еще хинт - можно предгенерять табличку, там у вас джойнов много - напишите плоскую таблицу, в которую по триггеру на инсерте/апдейте будет складываться все данные. Что бы селект получался простым, типа
"SELECT rules.rule_id " \
"FROM data_flow_rules_DENORMALIZED rules " \
"WHERE rules.ip_v4_address = '{src_ip_v4}' " \
"AND rules.ip_v4_address = '{dst_ip_v4}' " \
"AND rules.name = '{protocol}' " \
"AND rules.target_port = {target_port} " \
"LIMIT 1"
+ индекс на все поля, у вас простое равенство - поможет. не забывайте о селективности индекса (первой в индексе должно идти самое селективное поле)
Кстати, если в индекс последним включить поле rules.rule_id то обращения к табличке вообще происходить не будет, только к индексу :)
Еще откройте для себя EXPLAIN
https://dev.mysql.com/doc/refman/5.5/en/explain.html