There is a site that emphasize on displaying data on tables using Google spreadsheet - it can display hundred of thousands of data or even millions with blazing speed processing. How do they do it? The answer is using the server-side processing. The idea behind this it loads or process data only within the preset range of the data set that needs to be display. If you have 20 millions of data instead of loading everything all at once that might kill or jammed the server - it process only the portion of data that need to be displayed within the preset range.
For example the preset ranges is showing 10 rows in pagination mode let say there are 100 of data in each page. Therefore there are 10 pages of pagination. Then when each page is clicked then it only process 10 rows instead of 100 - by doing this the server can load it much quicker because there are not much of loads to process. So let's say 100,000 data in each page shows 100 rows then there are 1000 pagination page. Each pages is only processed 100 rows when user is clicking on that page, thus it loads faster.
This is quite well explained in this articles http://datatables.net/release-datatables/examples/data_sources/server_side.html