Checkout & Conversion

Magento Quote and Cart Table Growth Under Traffic

Every cart creates a quote, and high traffic and bots grow the tables fast. Here is why they bloat, why not to truncate them, and how to keep them bounded.

Jason Schuman · August 2, 2026

Under high traffic, the quote tables grow fast

Every cart a visitor starts creates a quote, and under high traffic that adds up quickly. A busy store, a sale, or a wave of bot traffic can grow the quote tables faster than most teams expect.

Most of those quotes never become orders, and without cleanup they stay forever. The result is a set of tables that bloat under exactly the conditions when the store can least afford database drag.

This article covers why quote tables grow, how high traffic and bots accelerate it, and how to keep them bounded so they do not become a performance problem during peak.

Why quotes accumulate

The quote table holds one row for every cart started, and its child tables multiply that. Quote items, addresses, and payments all accumulate alongside each quote.

Only a fraction of carts become orders, so most of these rows are abandoned carts that no longer matter. They persist because Magento does not delete them automatically without cleanup configured.

This is normal behavior, not a bug. The tables are working as designed; the problem is when nothing removes the expired quotes and they grow without limit.

High traffic multiplies it

Traffic is the multiplier. A normal day produces a steady stream of quotes, and a sale or a traffic spike produces a flood, because every visitor who touches a cart creates one.

The tables grow fastest during exactly the events that stress the store most. A big promotion drives both the traffic the store wants and the quote growth it does not, at the same time.

This timing is what makes quote growth a peak-performance concern. The bloat accelerates when the database is already under the most load.

Bots make it worse

Automated traffic accelerates quote growth beyond what real customers cause. Bots that add items to carts create quotes just as customers do, and they operate at a scale no human traffic reaches.

Quote tables growing far faster than actual orders are often a sign of bot traffic. Bots create carts at machine speed, filling the quote tables with rows that were never going to become sales.

This ties quote growth to bot load. A store seeing quote tables balloon out of proportion to its real orders should look at its bot exposure, not just its cleanup configuration.

The cleanup that should be running

Magento has a mechanism for this. The clean_expired_quotes cron job deletes quotes older than the lifetime set in checkout/cart/delete_quote_after, expressed in days.

When the quote tables are huge, one of two things is usually wrong. Either the cleanup cron is not running, which ties back to cron health, or the quote lifetime is set far longer than the business needs.

Checking both is the first step. A working cleanup with a sensible lifetime keeps the tables bounded without any manual intervention.

Never truncate live quotes

The tempting shortcut when quote tables are huge is to truncate them. That is a mistake on a live store, because the quote tables hold active carts, including customers mid-checkout.

Truncating quote deletes every active shopping cart at once, which is a direct hit to customers and to sales. The expired-quote cleanup exists precisely to remove old quotes without touching active ones.

The right tool is the cleanup cron and the lifetime configuration, not a blanket delete. Let Magento remove the expired quotes on its schedule while leaving the active ones alone.

Reclaiming the space

After a large cleanup, the space may not return to disk immediately. Deleting rows from an InnoDB table leaves the table its allocated size, reusing the freed space for new rows.

Reclaiming the disk requires rebuilding the table, which locks it and belongs in a maintenance window. On a store with file-per-table enabled, that rebuild returns the space to the filesystem.

This is the same reclaim step that applies to any large table cleanup. The rows go with the delete, but the disk comes back only with the rebuild.

Watch the growth rate, not just the size

The size of the quote tables today is less useful than how fast they are growing. A large but stable table is a one-time cleanup, while a fast-growing one will return to size soon after you clean it.

Snapshot the quote table row counts on a schedule and compare, the same way you would track any high-growth table. The growth rate tells you whether the problem is a backlog to clear once or an ongoing source to address.

A growth rate far above the order rate is the clearest signal of a problem behind the numbers, usually bots or a broken cleanup. The rate points at the cause; the size only shows the symptom.

Bounded tables, steady peaks

Quote table growth is a normal consequence of traffic that becomes a problem only when cleanup is not running. Under high traffic and bot load, that growth accelerates exactly when the database is most stressed.

Knowing that your quote cleanup runs, your quote lifetime is sensible, and your bot exposure is controlled keeps the tables bounded through your busiest periods. Managing that growth is a practical part of a checkout and performance review.