What I'd rather see is more than one watchdog / accesslog table.
There would be a small "current" table. When it has reached maybe 500 entries, those get moved to a big backup table and the current table gets pruned. This could be done by cron. This would require locking, I think.
Which advantages does that have?
- We work with a small table on normal page views. Inserts are fast. - We still have all the data we want on admin pages.
I would rather not do this. This is table partitioning, which complicates later access to the data. Some databases support table partitioning because they cannot deal with large data under certain workloads (e.g. Decision Support Systems), and it is a nightmare writing queries in a partitioned data environment.
In a previous incarnation of my Drupal web site, I needed access logs for certain range of time in order to generate graphs and charts. So my argument is there should be an option to use a time-based limit.
I agree that whatever we do, we should keep a time-based options anyway.