回覆列表
  • 1 # 阿邁達聊技術

    高併發的情況下,對於系統各個方面都有一定的要求,單從資料庫層面主要有以下幾點:

    1、讀寫分離

    高併發的場景讀寫分離是第一要做的。一般的系統都是讀的頻率要遠遠大於寫的頻率。所以我們將讀寫分開,從庫讀,主庫寫,一主多從,根據qps和iops大小再進行擴容調整。

    2、分庫分表

    分庫分表的目的在於降低單個表的資料量,提升查詢效率。主要有橫向拆分和縱向拆分。橫向就是把一張表的資料分到不同的庫或表,每張表的資料結構一樣。縱向就是把一張寬表拆分成小表。例如,一張表有50個欄位,可以將常用的欄位放到一張表,不常用的放到另一張表。

    3、索引

    索引是必須要的。針對查詢條的不同,建立相關索引,可以極大的提升查詢效率。

    最後,我們加入快取、最佳化sql、最佳化業務邏輯,目的就是儘可能的減少操作資料庫的次數,降低iops。

  • 2 # 計算機科學論文導讀

    在多使用者,高併發的業務場景下,傳統關係型資料庫i/o往往成為系統瓶頸,如上面幾位的回答,這種情況下首先應該考慮減少對資料庫的直接訪問,常見的方法有使用快取(包括客戶端快取,前端快取以及伺服器快取,和CDN等),使用訊息佇列非同步化資料庫讀寫進行削峰等。其次我們應該最佳化對資料庫的訪問,使資料庫能承受更高的qps,主要方法有最佳化重寫查詢語句,資料庫讀寫分離,分表分庫,以及對非事務型訪問考慮使用nosql等。

  • 3 # 使用者656089248049

    資料庫建立多表關聯,關鍵業務資料欄位和查詢欄位建立索引,對唯一性建立好,同時多工併發時程式設計時注意資料的合理性檢驗和使用者處理資料有問題時的友好提示見面,建立好的結構文件說明,同時對關鍵欄位的關係型作好記錄,有效地設計多表的結構安排,儘量減少資料的冗餘,同時又要避免對歷史資料的影響,保持良好的資料管理

  • 中秋節和大豐收的關聯?
  • 軍艦傾斜姿態高速轉向,是怎麼做到的?