Partitioning tables
A common practice in previous versions of Zabbix (1.4, 1.6, and even 1.8) was partitioning of database tables. This trick was used mainly as an alternative to disabling the housekeeper in critical situations for storage.
The housekeeper has the task of cleaning the database, and this cleaning is very important and necessary for Zabbix, otherwise the database will grow and exhaust the available space. Also there is data that, while not being a problem for the space, is no longer needed and we do not want to keep it in the database.
This task first involves finding out which records need to be eliminated. To do this, the housekeeper need to make a lot of SELECT
statements to discover old trends, history, items not belonging to any host, events, and the session's audit log. After identifying the records that need to be eliminated, the housekeeper runs the DELETE
statements.
All of these steps result in competition in reading and writing to the database, and this competition...