{eval=Array;=+count(Array);}

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問答專欄Q & A COLUMN

對于sqlserver大數據內容,怎么建表才能提高查詢數據的速度?

miracledanmiracledan 回答0 收藏1
收藏問題

2條回答

godiscoder

godiscoder

回答于2022-06-28 14:38

不是很了解這個,建立索引?根據功能需要創建視圖?這個真不知道了。我是來看其他大佬的答案隨便學習一下

評論0 贊同0
  •  加載中...
王巖威

王巖威

回答于2022-06-28 14:38

十幾年來使用的主要數據庫就是MS SqlServer,對于提高查詢速度的方法也考慮了很多,如果具體到建表這個條件,能采取的措施主要如下:

  1. 選擇好數據庫主鍵,主鍵作為聚集索引,直接決定了數據存儲的格式和順序,它對于提高查詢速度,特別是能利用上主鍵的查詢,具有決定性的意義。
  2. 合理建立索引,除了主鍵,其他非聚集索引就是最重要的因素了,如果某項查詢能命中一個索引,查詢速度會有幾倍甚至幾十倍的提升,但是索引也是有代價的,它一是會對存儲有影響,會占用額外的空間,二是對于增刪改操作都有可能引起索引的變化,從而減少這些操作的執行效率。所以,要根據預期的業務情況,合理建立索引,也可以在系統運行一段時間后,根據實際業務需要,再建立索引。
  3. 冗余字段的設計,對于特定的業務,有時需要多表連接查詢,這時候有可能會影響查詢效率,為了提高查詢速度,也可以酌情加上冗余字段,把多表查詢變成單表查詢,這在提高速度的同時,也會代理存儲和數據一致性的問題,需要通盤考慮。
  4. 字段類型的選擇,這個影響較小,具體的業務要求不同,有時候也需要考慮,比如對于主鍵或其他需要做比較的字段,一個整形的類型,查詢效率會高于一個字符串,不過,不能因此影響業務的實現。
  5. 分表,對于特別大的,隨時間累計的數據,可以分表來處理,比如每個月份建一個表,表結構完全一樣,查詢時根據時間段來決定從哪些表查詢,這會大幅提高查詢效率,但是數據維護邏輯會變的復雜一些。
  6. 數據分區,這種方式和分表有點相像,但是最好和物理磁盤配合,充分利用多磁盤并發讀取的優點。
  7. 內存表,sqlserver2014后,提供了內存表的概念,在特定情況下,可以把所有的數據都加載到內存中,極大提高存取速度,不過這種有一定的限制,不能作為通用的優化方法。
  8. 業務邏輯設計,在設計業務邏輯的時候,就充分考慮實體對象之間的關系,合理建立實體表和關系表,這也和具體的業務有關系,需要具體分析。
其實,很多時候,優化還要通盤考慮,特別是在應用端,也有很多優化措施,比如緩存、分頁、存儲過程利用、大數據統計臨時表等,結合數據庫的特點,共同來提高查詢速度。

評論0 贊同0
  •  加載中...

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關注的人
向幫助了您的網友說句感謝的話吧!
付費偷看金額在0.1-10元之間
<