在上節內容中我們介紹瞭如何利用資料庫主鍵提升訪問效能,本節內容我們繼續為大家介紹如何在大規模資料量的場景下提升資料訪問效率。
在開始之前先做個小小的實驗:
1. 準備一張資料表,內建1000W行記錄。
2. 直觀感受一下這個表的規模。使用MSSQL對其進行查詢,足足花了8秒鐘的時間才獲取到表的總行數。
(在MSSQL中獲取資料表的總行數)
3. 將這個資料表連線到活字格中,來監測一組資料:
(連線到活字格設計器)
(1)設計器效能
透過設計器讀取資料表中的欄位,直接就能展開,效能符合預期。
![](https://i.iter01.com/images/daa7e07123032de9ab81c981db53345fffcf17865f116e0f4f39c5893d528fb6.png)
但當嘗試在活字格中雙擊開啟這個表的時候,結果如下:
那麼活字格是如何保證在設計器中能夠優雅的開啟這麼多的資料呢?原來秘密武器在這裡。在設計器的【設定】選單->【應用程式設定】->【啟動頁面】在有一個【在設計器中顯示外聯表資料量最大行數】的欄位,合理設定這個數值,就可以解決這個問題。
(設定外聯表資料量最大行數)
【備註】預設情況下,活字格預設設定的是無限制載入資料,但當資料表的規模非常大的時候,建議大家一定要設定合理的顯示行數。這樣做的缺點是無法在設計器中檢視到資料表中全部的資料。
(2)瀏覽器效能
如果將資料表格繫結到頁面在瀏覽器中進行訪問的時候,瀏覽器會預設將所有的資料顯示出來。可想而知,對於1000W行資料,您會看到如下的執行效果。
(透過瀏覽器之間訪問大規模資料表)
那麼該如何處理呢?在活字格中,可以透過設定預設載入合理的表格資料來解決這個問題。如下圖所示:
(設定表格載入行數)
設定之後,資料就可以快速開啟。
(在活字格中顯示錶格資料)
(3)更多複雜應用場景
以上兩種方法能夠解決簡單場景的問題,但是在實際的應用中會涉及到很多複雜的場景。比如需要在表A中維護一些資訊,然後將A表關聯至該資料表中。或在下圖中表格2中的 A 列填入資料,然後在B列顯示透過A列關聯出來資料該資料就是文中所說的1000W行資料表中的值。
(資料管理示例)
在這種情況下,使用活字格提供的——“預設不載入資料”是最好的方式。
右鍵【表格設定】->【設定預設不載入資料】,如下圖所示:
![](https://i.iter01.com/images/3774cdf4979dc7687676c2a69ea790be4db861fb562cbb7fc4702ab38d36e701.png)
(表格設定示例)
![](https://i.iter01.com/images/0a1d0a91d6a7a5af91fd2bafac1d446647d43956ba128e1774798fd24cd49807.png)
為了完成上述的示例,可以設定一個textjoin函式,將使用者正在錄入的表格中的資料串起來。當單元格為空的時候,右側的表格會顯示全部資料。為了避免資料為空,可以在函式外側進行判斷,當為空時,結果顯示-1。
![](https://i.iter01.com/images/f7d108c916c9bb6b315bdfa07857734c7f9f880d65db664754ea42b8701741f5.png)
最後,再使用Vlookup函式就可以達到預期的效果。
![](https://i.iter01.com/images/ab3cf2ac157de0b3f6899ce21f7158bcfa079faa1fc90bcca05671511de8aac9.png)
點選載入資料,頁面會快速開啟,並且能夠正常載入資料。
![](https://i.iter01.com/images/71dd1f89549ce9443fc5d77348a37f98592f460ce3c7866c78c22b68603abcae.png)
至此,我們就掌握了透過表格設定預設不載入資料來提升效能的方法。相信大家將這些小的技巧應用到您的系統開發中,一定能提升系統的訪問效能。
當然,可能有些小夥伴會問,上述的例子直接使用ODATA就行了,幹嘛非要載入這個表呢?
Odata自然也是可以的,但是不要忘了Odata和Vlookup的抉擇問題
如果是這樣的話,是不是Vlookup就需要了?那麼如果設定了只載入100行,萬一真的有100多行需要Vlookup怎麼辦呢?更多的問題留給大家去思考。
擴充閱讀
遠離勒索病毒,如何在Linux上安裝活字格低程式碼服務管理器?