正確應用索引 分布式MySQL應用的大前提

2021-08-14 15:36:09 字數 731 閱讀 7869

分布式mysql應用的要點:

1.靈活應用作業系統快取

2.正確設定索引

3.以橫向擴充套件為前提設計

1.考慮全部資料量

->保持資料量小於物理記憶體

->記憶體不足時增加記憶體等

2.考慮表結構設計對資料大小的影響

index = 索引

b+樹1.搜尋外部儲存裝置時能將尋道次數最小化的樹結構

2.搜尋複雜度:o(n) -> o(log n)

[例子]從4000萬條資料的標籤表中搜尋

無索引 = 線性查詢

-> o(n) ->最大4000萬次搜尋

有索引 = 用b樹進行二分查詢

-> o(log n) ->log 4000萬 = 最大25.25次

1.基本上,使用索引的有

->where,order by,group by條件中指定的列

2.合適索引有效

->明確地新增了索引

->主鍵,unique約束

3.mysql索引的陷阱

->想同時使用多個列上的索引,就必須使用復合索引

從索引生肖的方式來看,extra列也十分重要。除了using where之外還可能出現using filesort,using temporary等,分別表示使用外部檔案進行排序,使用臨時表時需要索引等。基本上出現了using filesort,using temporary的查詢不能說是好查詢,所以要努力調整查詢和索引,盡量不要出現這兩者。

mysql分布式搭建 MySQL分布式集群搭建

1 準備集群搭建環境 使用6臺虛擬機器來搭建mysql分布式集群,相應的實驗環境與對應的mysql節點之間的對應關係如下圖所示 管理節點 mgm 這類節點的作用是管理mysqlcluster內的其他節點,如提供配置資料,並停止節點,執行備份等。由於這類節點負責管理其他節點的配置,應該在啟動其他節點之...

Celery分布式應用

最近有應用需要部署到不同的伺服器上執行,但是有沒有pbs這樣的排程系統,就想起來python的排程神器 celery。現在針對我的實際應用做一些記錄。因為我並不注重結果而是把命令拿到不同的機器上執行,所以訊息 和結果儲存我都選擇了 redis 只需要在一台伺服器上安裝 redis,其他伺服器均使用該...

mysql分布式事務

儲引擎實現事務的通用方式是基於 redo log 和 undo log。簡單來說,redo log 記錄事務修改後的資料,undo log 記錄事務前的原始資料。所以當乙個事務執行時實際發生過程簡化描述如下 先記錄 undo redo log,確保日誌刷到磁碟上持久儲存。更新資料記錄,快取操作並非同...