成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

分布式數據庫索引能力大調研

原創 精選
數據庫 其他數據庫
在分布式數據庫情況下,索引又有所不同,其較單機或集中式數據庫在設計、管理、優化方面有一定的差異。本文針對國內主流的一些分布式數據庫,針對索引功能做了個小調研,希望對大家能有所幫助。

索引,是數據庫中非常重要的一類對象。在數據庫中增加索引,是常見的一種優化手段,特別是對于查詢語句的優化,很多都可以通過增加索引方式來解決。在分布式數據庫情況下,索引又有所不同,其較單機或集中式數據庫在設計、管理、優化方面有一定的差異。本文針對國內主流的一些分布式數據庫,針對索引功能做了個小調研,希望對大家能有所幫助。這里特別感謝來自奧神貝斯、平凱星辰、阿里云、騰訊云、金篆信科、萬里開源老師的協助。

1. 索引概述

(1)索引優點與缺點

索引作為一種可選的數據結構,可有效提升基于索引字段的查詢性能,用戶可根據業務自身需求進行選擇。其優點非常明顯,即在不修改SQL語句的前提下可以加速查詢,其原理是因為通過掃描索引減少了對原表的訪問,進而節省了查詢IO,提升性能。但索引也不是什么“銀彈”,其缺點非常明顯,索引作為一種數據庫的結構,只要占據存儲空間并會導致數據維護成本的提高。此外,隨著業務調整變化,原索引也需要人工維護。

(2)分布式下索引特殊性

在分布式數據庫中,數據是采用分片方式存儲,即表中的數據存在在不同節點上。在索引中需要記錄索引列及對應在原表中的位置,故其使用維護成本是比較高的。而且數據的拆分情況下,數據規模減少了很多,是否還需要通過索引加速訪問也值得商榷。很多單機或集中式數據庫遷移到分布式數據庫時,其對應的索引策略是不建議直接平移過來,需要結合分片設計做單獨考慮。

(3)索引使用建議

如何更好地使用索引,有一些通用的建議:

  • 索引建立,應遵循最左前綴原則。
  • 盡量選擇基數較高的字段,所謂索引字段。
  • 為經常參加過濾、關聯、排序的字段創建索引。
  • 可以利用覆蓋索引,有效避免回表操作。

針對分布式數據庫中的索引,有些不同的建議:

  • 減少不必要的全局索引,因為其維護代價很高。
  • 在數據分片下,數據規模進一步縮小,需考慮創建索引的必要性。

2. 索引能力大對比

近些年來,國內涌現出一大批分布式數據庫產品,其架構不同、功能各異。用戶在使用時,面臨一個普遍問題就是選型,作為重要的考察功能之一,索引也是大家非常關注的一點。這里針對國內的一些主流分布式數據庫在索引功能上的情況,做了個簡單調研。

TiDB中的索引都被認為是全局索引,故不存在本地索引說法。

(1)索引類型

這里談的索引類型,是指索引是否有獨立的數據分布模式。也就是說,索引是否是按照跟表相同的數據分布方式,還是自己獨立一套。前者通常被稱為本地索引、局部索引,后者則被稱為全局索引、二級索引等。對于本地索引而言,由于其數據分布與表相同,因此如果想使用使用是需要配合分區鍵的,能精確定位到分區的場景。對于全局索引而言,則沒有這個限制,可以按照非分區鍵的維度進行查詢。通常全局索引也是使用在不包含分區鍵的多維度查詢場景。當然其付出的代價也很大,每一筆數據都有可能會演化為跨機的分布式事務,對數據庫的吞吐、延時等都會造成影響。這里可參考下網上一篇評測報告。因此通常建議嚴格區分場景,優先使用本地索引來解決,確實不能解決的再考慮全局索引,但也要嚴格控制全局索引的個數。從產品上來看,大部分分布式數據庫產品都支持了全局索引,這也是為了迎合用戶之前基于單機/集中式數據庫的使用習慣。當然這里還是強調下,在分布式數據庫中不能一味遷就原有的結構設計,為了獲得性能與效率的平衡,是需要考慮在應用側做些妥協的。這里需要注意的是 TiDB,因其數據天然具備的自動拆分特點,其索引都可被視為全局索引。

(2)支持表類型

在分布式數據庫中,索引支持在哪些表中創建。很多分布式數據庫支持創建分區表(或叫分片表),也支持創建非分區表。對應的索引是否支持在不同類型的表上創建。一般情況下,分區表上可以創建分區索引(可能是全局的或本地的),非分區表沒有創建分區索引的意義。從產品來看,大部分產品都支持在不同類型的表上創建索引。TiDB 因其自身技術設計,其表都為分區表,因此不涉及這個問題。

(3)索引唯一性

唯一索引可以確保表中的某個字段(或組合)的唯一性。在分布式數據庫中,由于數據分片存儲,確保唯一性是個挺難的事。因此大多數情況下,唯一索引是包含分區鍵的組合索引,這樣維護的代價相對較小。從產品上看,上述產品都支持了索引的唯一性。

(4)索引列個數

索引字段可支持一個或多個。從產品上看,上述產品都支持單鍵索引和復合索引。

(5)索引有序

索引作為一種有序的數據存儲結構,可以按照數據升序順序存儲,也可以按降序存儲,因此創建的索引就有升序索引和降序索引。在進行數據排序類訪問時(如Order By),可利用索引的有序性來提升訪問性能。當訪問操作需要按照不同于索引排序的方式訪問時(如對索引列降序訪問,但只存在升序索引),有的數據庫是可以利用升序索引來解決,有的則只能退化為表掃描方式解決。例如在MySQL 8.0中就支持“Backward index scan”來解決此問題。從產品來看,部分產品支持降序索引,部分產品還不支持。

(6)特殊索引

除了常規的 BTree 索引外,有些數據庫還支持特殊類型的索引,這里舉例如空間索引和函數索引。前者是一種用于加速空間數據的查詢的特殊索引類型,主要應用于地理信息系統(GIS)和空間數據處理領域;后者則是支持對函數或者表達式做索引。這些能力無疑會擴展索引的使用范圍。從產品上看,廠商能力參差不齊,特別是針對空間索引。

(7)其他能力

索引的其他能力,這里列舉了幾種常見的。一是索引提示,針對復雜數據訪問場景或優化器尚不穩定時,提示是一種有效的應急/規避手段。上述產品也都支持了此功能。索引合并,是指 Index Merge 功能,大部分產品已經支持,少數產品還不行。索引可見性則是指優化器是否忽略該索引,這對于索引維護、系統優化有一定幫助,上述產品也都支持了。最后則是索引強一致,這也是對索引的最基本要求,也是數據庫與中間件產品的差異,上述產品也都支持。

責任編輯:姜華 來源: 韓鋒頻道
相關推薦

2023-12-15 07:34:56

分布式數據庫數據庫租戶軟件架構

2021-12-20 15:44:28

ShardingSph分布式數據庫開源

2023-12-05 07:30:40

KlustronBa數據庫

2022-03-10 06:36:59

分布式數據庫排序

2023-07-31 08:27:55

分布式數據庫架構

2023-07-28 07:56:45

分布式數據庫SQL

2023-03-07 09:49:04

分布式數據庫

2020-06-23 09:35:13

分布式數據庫網絡

2024-09-09 09:19:57

2022-08-01 18:33:45

關系型數據庫大數據

2023-11-14 08:24:59

性能Scylla系統架構

2021-12-30 18:15:56

數據庫TDSQL

2024-03-11 08:57:02

國產數據庫證券

2012-09-29 13:18:23

分布式數據庫Google Span

2018-05-25 13:12:10

UCloud數據庫UDDB

2021-12-14 10:16:00

鴻蒙HarmonyOS應用

2023-04-26 06:56:31

分布式數據庫偽需求

2022-06-09 10:19:10

分布式數據庫

2011-05-19 09:18:48

分布式數據庫

2011-03-24 17:15:06

分布式數據庫系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www.色53色.com| 亚洲国产视频一区二区 | 日日射影院 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 有码一区 | 亚洲精品日韩在线 | 在线日韩中文字幕 | 国产精品美女 | 精品久久一区二区 | 国产精品久久久久国产a级 欧美日韩国产免费 | 国产在线拍偷自揄拍视频 | 国产成人av在线播放 | 国产成人高清在线观看 | 久久精品二区亚洲w码 | 欧美a级网站 | 久热国产精品 | 请别相信他免费喜剧电影在线观看 | 国产高清一区 | 日韩在线观看一区 | 亚洲国产成人精品久久 | 亚洲乱码国产乱码精品精的特点 | 色橹橹欧美在线观看视频高清 | av网站免费看 | 国产99久久久国产精品 | 亚洲精品一区二区三区丝袜 | 久久精品小视频 | 国产91久久久久 | 日韩无| 久久不卡区 | 精品久久久久久红码专区 | 欧美日韩不卡合集视频 | 亚洲高清视频在线观看 | 久久一区二区三区四区 | 日韩欧美国产一区二区 | 精品欧美一区二区三区精品久久 | 一区二区三区四区电影视频在线观看 | 天天久久 | 日韩一区二区三区在线视频 | 在线色网| 五月天婷婷综合 | a在线免费观看视频 |