This page provides an overview of data cache, our recommendations on choosing workloads on which to enable data cache, and the limitations of using a data cache.
Data cache is an optional feature that stores data pages on high-speed local solid state drives (SSD) to accelerate query processing. Data cache extends the MySQL buffer pool to use both the memory and the local SSD.
You can enable data cache when you create an instance.
When you enable data cache on your instance, this is how Cloud SQL processes read and write requests:
Read request: Cloud SQL prioritizes reading data from the main memory, followed by the data cache, and then the instance's storage. This allows for the read operations to be processed with the lowest possible latency.
Write request: Cloud SQL commits the data to the instance's storage and simultaneously writes it to the data cache.
Recommendations
Data cache provides performance benefits for certain workload types. We recommend that you enable data cache for the following workload types:
- Workloads where the working dataset doesn't fit in the main memory.
Using a data cache delivers maximum performance benefits when the entire working dataset can't fit in the instance's main memory. In this scenario, Cloud SQL stores the working dataset in the main memory and the data cache. The working dataset is generally smaller than the full dataset.
- Workloads with 16 or more vCPUs.
Using a data cache generally provides more performance benefits for workloads with 16 or more vCPUs.
- Workloads with more read operations than write operations.
Use a data cache for workloads that are predominantly made up of read operations.
Limitations
- When a data cache becomes full, it removes the stored data based on the least recently used analysis to accommodate subsequent updates to the data cache.
- If there's a user- or system-triggered shutdown or restart, then the contents of the data cache are available on restart. However, if the primary instance performs maintenance or encounters an unexpected shutdown, such as in a failover operation, then the contents of the data cache are lost. This can lead to reduced performance while the data cache is repopulated.