Black Lives Matter. Please consider donating to Black Girls Code today.

Is there a maximum size for Dash_Table?

Is there a maximum size for Dash_Table, and if so what is the size? I am working with a quite big dataset and I was wondering if Dash_Table has a maximum regarding bytes, number of rows, number of columns, and if so, what is the kind of error message that can be expected when it becomes too high?

The error that I receive is ‘Error loading layout’, it seems to not occur when I put the number of rows in my table lower, not sure if this can be related to this issue. Thank you very much in advance for your information!

@rrighart Hope the following helps answer your question.

  • Testing was done with 10 columns, no conditional styles, etc.
  • Adding columns will impact performance but not linearly: doubling the number of columns has less impact than doubling the number of rows, at least for the 10-50 columns range. I’ve never tested it beyond that point

With page_action='none'
The table stays reactive with up to 2k rows with. Past that point performance degrades fast and the table is essentially unusable for navigation / edition purposes by the time it reaches 5k rows.

This usage is performance limited.

With page_action='native' (the default, with 250 items / page (also the default))
The table is reactive for navigation and ok for edition up to about 50k rows. Using page_action='custom' requires callbacks in the Dash App for paging and will require reconciling the data in callbacks on edition) – filtering and sorting performance will degrade linearly and still behaves fine for 50k rows. Performance with page_action=filter_action=sort_action='custom' would be mostly dependent on the server running the Dash App, the browser handling very limited amount of data.

This usage is performance limited.

With virtualization=True+page_action='none'
The table limits the rendered rows to what’s needed to cover the viewport. The table should stay reactive for >=750k entries. Crashes on my machine for 1M entries. This usage is resource limited by the browser.

With virtualization=True + page_action='custom' + a large page_size (e.g page_size=250000)
These settings will limit the amount of data the browser needs to process and allow the table to support a significantly larger dataset. This combination should be limited by whatever the Dash App server can handle and the data transfer between the browser and the app.

This usage is resource limited by the server.

1 Like