淺析小程序雲開發數據庫核心能力及最佳實踐

隨着用戶量的不斷增多,用戶需求的不斷變多,雲開發的迭代速度也越來越快,雲開發推出了不少的新功能,這篇文章,將歷數這些雲開發的新功能,看看你都用上了沒。

雲開發數據庫基礎能力概覽

雲開發數據庫主要提供的是一個 JSON 文檔型數據庫, JSON 數據格式讓他對於前端開發十分的油耗,開發者可以輕鬆的完成數據的修改。此外,在數據庫基礎之上,雲開發還提供了豐富的數據類型和多個平臺的 SDK,讓開發者可以在各個平臺完成自己的業務開發。不僅如此,雲開發數據庫還提供數據庫的安全規則控制,讓開發者得以實現更加細粒度的權限控制。對雲開發概念不熟悉的同學可以查看產品文檔:https://cloud.tencent.com/product/tcb

當然,除了上面提到的這些基礎能力以外,還有很多其他的特色能力,可以幫助你更好的完成自己的業務開發。接下來,我們來看看這些特色能力。

自定義告警

爲了輔助業務監控服務質量,雲開發爲數據庫提供了自定義告警能力,開發者可以藉助監控能力,來實現監控服務的可用性。

對於開發者來說,可以藉助雲開發提供的自定義告警能力,來完成業務質量的監控、問題的快速觸達,將問題扼殺在搖籃之中。

權限管理

脫離了安全,業務就沒有任何保證可言。在數據庫權限設置方面,雲開發提供了兩種設置,第一種是初期提供的基礎的四種簡易權限設置,第二種是靈活的、可自定義的權限控制,即數據庫安全規則。每個集合可以擁有一種權限配置,權限配置的規則是作用在集合的每個記錄上的。

通過不同粒度的權限控制方式,開發者可以十分簡單的實現各種不同權限控制能力。不僅如此,因爲有了權限控制能力,雲開發的數據庫可以在前端直接操作,可以有效的提升研發效率。

導入導出管理

針對不同的業務,雲開發提供了數據導入、數據導出、數據回檔功能。

針對有需求從傳統業務遷移至雲開發上的開發者,可以選用雲開發提供的數據導入能力,通過將數據轉換成 JSON 或 CSV 格式,來導入到雲開發數據庫中。類似的,如果業務需要對數據進行離線統計分析的時候,就可以藉助數據導出的功能,實現本地的數據分析。

除此之外,從安全的角度考慮,我們面向開發者開放了數據回檔的功能,簡單的幾下點擊,就可以實現數據的快速回檔,告別刪庫跑路。

索引管理

數據庫索引可以提升數據庫查詢的性能,雲開發也提供了相應的索引管理功能,幫助開發者方便快捷的完成索引的創建,優化數據庫查詢的性能。目前雲開發數據庫索引支持鍵值索引和地理位置索引,後續也有可能會支持 Hash 索引和全文索引等。

開發者可以藉助雲開發提供的索引功能,優化數據庫查詢的性能,提升產品的體驗。

如何創建高效的數據庫索引

最佳實踐1:每個生產環境查詢都應有索引支持

首先我們需要記得,每一個我們放到線上生產環境的查詢,都應該配有索引支持,只有有索引支持才能儘可能規避數據量和請求量上漲帶來的慢查詢風險。

最佳實踐 2:儘可能使用組合索引

如果我們的查詢條件包含多個字段,那麼爲這些字段創建一個組合索引後的查詢效率是比只使用單字段索引要高很多的。像下圖這個case

最佳實踐 3:組合索引字段順序策略

要注意組合索引中字段的順序。比如下圖這樣一個包含兩個查詢字段,一個排序字段的這麼一個查詢語句,那我們在創建組合索引的時候是不是任意順序都可以呢?確認任意順序都能讓這個查詢語句用到索引,但那不一定是最優的順序。最優的順序是b,c,a,爲什麼呢?在創建組合索引時,我們應遵循這麼一個字段順序原則:等於>排序>範圍查詢字段。

最佳實踐4:注意組合索引升降

要注意組合索引的升降序,這個升降序也並不是可以隨意指定的,特定的升降序組合只可以滿足特定的排序查詢。以下面這個查詢爲例。

最佳實踐 5:利用覆蓋索引高效查詢

可以利用好覆蓋索引。什麼是覆蓋查詢,就是當查詢條件和查詢要返回的所有字段都在索引中的時候,就是覆蓋查詢,當命中覆蓋查詢的時候,查詢不再需要去讀取數據,直接從索引中取得結果,可以進一步更加的高效。下面這個查詢是一個例子:

最佳實踐 6:數組查詢也要建索引

要記住數組也可以使用索引,像下圖中的示例,a 字段是個數字數組,b字段是個對象嵌套數組,它們其實都可以利用到索引,像a字段我們可以直接建個索引,如果需要查b數組裏面的x字段,那可以建個b.x的字段索引。

最佳實踐 7:去除多餘索引

要去除多餘的索引。什麼是多餘的索引呢?首先當然是沒用到的索引,過時的索引,這些都可以去掉,但還有一類多餘的索引需要特別提及,那就是重複前綴的索引和相反升降序的索引,這些也是多餘的索引。

最佳實踐 8:大數據量下避免使用低區分度操作符

在大數據量下避免使用低區分度的操作符,這些都是取反的操作符,他們的區分度通常都很低,因此很難高效的使用索引,因此只應該在少量的時候使用。

希望以上的能力介紹和最佳實踐建議,可以幫助到大家更好地使用到雲開發數據庫。如果你對上面8個最佳實踐建議還無法很好地理解,這也沒有關係,因爲微信開發者工具很快就會推出一個自動分析數據庫查詢語句,然後自動給出索引建議的能力,這項能力可以讓大家在偏離數據庫索引最佳實踐的時候給出提示和警告,從而讓小程序的數據庫查詢都儘可能有正確、完整的索引保障,並且還是遵循最佳實踐的方式建立的索引。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章