System tables in InfluxDB are virtual tables that store metadata for a specific database and provide insights into its storage. They are read-only and hidden by default, requiring a debug header to access. The three main system tables discussed here are system.tables, system.partitions, and system.compactor. Querying these tables can impact write and query performance, so it's recommended to use filters for optimization.