You have to offload old historical data out of your DB, for sure.
Of particular importance is using innodb_file_per_table=1. If you arent using that, better configure it, and do a dump and restore of your DB. Alternatives for offloading in MySQL are SHARDING and  PARTITIONING.

In the meantime, you can add the DELAYED keyword in INSERT queries. There is no point in waiting for INSERT queries and delaying the authentication.

Regards
--
Rui Fernando Ferreira Ribeiro
senior sysadmin ISCTE-IUL


Message: 5
Date: Fri, 17 Jan 2014 09:18:47 +0100
From: Antonio Fern?ndez P?rez   <antoniofernandez@fabergames.com>
To: freeradius-users <freeradius-users@lists.freeradius.org>
Subject: Radacct table is growing and growing
Message-ID:
        <CANz54joeyD8rXnDwEgUY7+k-wLmN820tz=6F+wx9wi1BS8-sxA@mail.gmail.com>
Content-Type: text/plain; charset="iso-8859-1"

Hi everybody,

I have a radacct table with more than 12300000 rows. I have increased RAM
memory recently because the data base is working with InnoDB engine and was
necessary to load data into the buffer. But, anybody knows some technique
that allows freeradius makes authentications with radacct historical tables?

I have thought in grouping rows using the UserName, keeping only one row
for each user. Also I thought in make quarterly tables but this is a proble
to authenticate users.

Any ideas?

Thanks in advance.

Regards,

Antonio.