New rows are added to the flaggedrevs_statistics table every time FlaggedRevsStats::updateCache is called, but the old values are never removed; only the values for the latest timestamp are ever needed. Can the old rows be purged?
For reference, there are currently 1611863 rows in the enwikibooks table, 1611818 of which are for timestamps that are not the latest and thus are never used, and 45 of which are used until the table is updated again.
MariaDB [enwikibooks_p]> SELECT COUNT(*) FROM flaggedrevs_statistics; +----------+ | COUNT(*) | +----------+ | 1611863 | +----------+ 1 row in set (0.50 sec) MariaDB [enwikibooks_p]> SELECT MAX(frs_timestamp) FROM flaggedrevs_statistics; +--------------------+ | MAX(frs_timestamp) | +--------------------+ | 20201202020039 | +--------------------+ 1 row in set (0.00 sec) MariaDB [enwikibooks_p]> SELECT COUNT(*) FROM flaggedrevs_statistics WHERE frs_timestamp != 20201202020039; +----------+ | COUNT(*) | +----------+ | 1611818 | +----------+ 1 row in set (1.59 sec) MariaDB [enwikibooks_p]> SELECT * FROM flaggedrevs_statistics WHERE frs_timestamp = 20201202020039; +----------------+-------------------------------------+--------------+ | frs_timestamp | frs_stat_key | frs_stat_val | +----------------+-------------------------------------+--------------+ | 20201202020039 | pendingLag-average | 42779539 | | 20201202020039 | reviewLag-anon-average | 1425172 | | 20201202020039 | reviewLag-anon-median | 961228 | | 20201202020039 | reviewLag-anon-percentile:35 | 682757 | | 20201202020039 | reviewLag-anon-percentile:45 | 878580 | | 20201202020039 | reviewLag-anon-percentile:55 | 1146432 | | 20201202020039 | reviewLag-anon-percentile:65 | 1659521 | | 20201202020039 | reviewLag-anon-percentile:75 | 1813621 | | 20201202020039 | reviewLag-anon-percentile:85 | 3447574 | | 20201202020039 | reviewLag-anon-percentile:90 | 3877841 | | 20201202020039 | reviewLag-anon-percentile:95 | 4657014 | | 20201202020039 | reviewLag-anon-sampleEndTimestamp | 1235078705 | | 20201202020039 | reviewLag-anon-sampleSize | 62 | | 20201202020039 | reviewLag-anon-sampleStartTimestamp | 1234473905 | | 20201202020039 | reviewLag-user-average | 857294 | | 20201202020039 | reviewLag-user-median | 708265 | | 20201202020039 | reviewLag-user-percentile:35 | 666534 | | 20201202020039 | reviewLag-user-percentile:45 | 701822 | | 20201202020039 | reviewLag-user-percentile:55 | 778604 | | 20201202020039 | reviewLag-user-percentile:65 | 859203 | | 20201202020039 | reviewLag-user-percentile:75 | 956896 | | 20201202020039 | reviewLag-user-percentile:85 | 1090743 | | 20201202020039 | reviewLag-user-percentile:90 | 1184455 | | 20201202020039 | reviewLag-user-percentile:95 | 1382784 | | 20201202020039 | reviewLag-user-sampleEndTimestamp | 1235078705 | | 20201202020039 | reviewLag-user-sampleSize | 455 | | 20201202020039 | reviewLag-user-sampleStartTimestamp | 1234473905 | | 20201202020039 | reviewedPages-NS:0 | 65228 | | 20201202020039 | reviewedPages-NS:10 | 8819 | | 20201202020039 | reviewedPages-NS:102 | 4029 | | 20201202020039 | reviewedPages-NS:110 | 2294 | | 20201202020039 | reviewedPages-NS:6 | 1007 | | 20201202020039 | reviewedPages-NS:828 | 97 | | 20201202020039 | syncedPages-NS:0 | 63647 | | 20201202020039 | syncedPages-NS:10 | 8817 | | 20201202020039 | syncedPages-NS:102 | 4026 | | 20201202020039 | syncedPages-NS:110 | 2294 | | 20201202020039 | syncedPages-NS:6 | 1007 | | 20201202020039 | syncedPages-NS:828 | 97 | | 20201202020039 | totalPages-NS:0 | 81959 | | 20201202020039 | totalPages-NS:10 | 8921 | | 20201202020039 | totalPages-NS:102 | 4037 | | 20201202020039 | totalPages-NS:110 | 2294 | | 20201202020039 | totalPages-NS:6 | 1771 | | 20201202020039 | totalPages-NS:828 | 97 | +----------------+-------------------------------------+--------------+ 45 rows in set (0.86 sec)