Millions of datas

Tags: #<Tag:0x00007efc61ca1c78>

My project is basically 5 tables. VueJS, all data local, using store.
A-1 table with less than 1000 rows and 50 columns, at most. (now with 8)
B-3 tables usually with 10, 15 rows and 20 columns.
C-1 table that may contains millions of rows (maxRows: 200) and 10 columns, give or take (now with 7500 rows).

C-filter takes less than 1/2 a second to be applied.
C-contextMenu, afterGetColHeader, beforeOnCellMouseDown, beforeChange, afterSelection, beforeKeyDown

A and B - update columns and headers take 1/2 a second when C doesn’t have data, and 4 seconds when has (google chrome) (IDK why this behavior).

My question is: Will I have trouble with this millions of data? Do I have to consider having server filtering this instead of local?

Hi Eduardo,

with millions of cells, you should consider server-side filtering. However, the best way to check what would it work is to check this demo https://jsfiddle.net/handsoncode/hwaskzqf/
I set it up for filtering and 1 million cells (1000 rows x 1000 column). You can use the

Handsontable.helper.createSpreadsheetData(1000, 1000)

helper to define any other dataset. Considering your settings

  • beforeChange - filtering doesn’t trigger this hook.
  • beforeKeyDown - filtering doesn’t trigger this hook.
  • beforeOnCellMouseDown - filtering triggers this hook once (for a column header)
  • afterSelectionEnd - filtering triggers this hook twice (with a header click and after filtering is done a single cell from a column is selected)
  • afterGetColHeader - that could run more times as it is called with every render for columns in the viewport (and filtering has to trigger renderer to repaint the list of rows)

I made extra tests and found better to have it in server. Mostly because I live in Brasil, and I have to considerer old and poor quality computers, especially in public sector, for which this system is meant for.
Besides, the server (that will handle even more data) was taking something 15+ seconds to retrieve data, and now, after some settings, it is taking less than 1/2 a second, so I can consider server side.
Thanks.

If you would find any difficulties or missing documentation while choosing server-side, please let me know at support@handsontable.com. Handsontable is a front-end library but maybe some line or two in the docs could improve the product’s experience when used on the back-end.

I’m glad to hear, thanks a lot for your help :grinning: