資料庫優化方面的事情

2022-03-23 06:17:19 字數 1600 閱讀 5011

資料庫優化方面的事情:

定位:查詢,定位慢查詢,

優化手段:

1:建立索引:建立合適的索引,我們就可以現在索引中查詢,查詢到以後直接找對應的記錄。

2:分表:當一張表的資料比較多或者一張表的某些欄位的值比較多並且很少使用時,採用水平和垂直分表來優化:

3:讀寫分離:當一台伺服器不能滿足需求時,採用讀寫分離的方式進行**。

4:快取:使用redis來進行快取

5:一些常用的優化技巧

查詢慢查詢並定位慢查詢?

在專案測試前,在啟動mysql資料庫時開啟慢查詢,並且把執行慢的語句寫到日誌中,在執行一定的時間後,

通過檢視日誌找到慢查詢的語句

建立合適的索引

普通索引:允許重複的值出現

唯一索引:除了不能有重複的記錄外,其他和普通索引一樣(使用者名稱,使用者身份證,email.tell)

主鍵索引:是隨著設定主鍵而建立的,也就是把某個列設為主鍵的時候,資料庫就會給該列建立索引。

具體技巧:

1:對於建立的多列索引(復合索引),不是使用的第一部分就不會使用索引。

aler table dept add index my_ind(dname,loc)  //dname左邊的列,loc是右邊的列

explain select * from dept where dname ='aaa'  //會使用到索引

explain select * from dept where loc ='aaa'  //不會使用到索引

2:對於使用like的查詢,查詢如果是『%aaa』不會使用索引,而『aaa%』會使用索引

explain select * from dept where dname like ='%aaa'  //不會使用到索引

explain select * from dept where dname like ='aaa%'  //會使用到索引

所以在like查詢時,『關鍵字』的最前面不能使用%或_這樣的字元,

3:如果條件中有or,有條件沒有使用索引,即使其中有條件帶有索引也不會使用,換言之,就是要求使用的所有字段,都必須單獨使用使用時能使用索引。

資料庫優化之分表:

分表分為水平(按行)分表和垂直(按列)分表

根據經驗:mysql表資料一般達到百萬級別,查詢效率會很低,很容易造成表鎖: 按行資料進行分表:

如果某個字段值非常多,而且只有在很少情況下會查詢,這個時候就可以把字段多的單獨放到一張表,通過外來鍵關聯起來

水平分表策略:

1:按時間分表

2:按區間範圍分表    

3;hash分表

讀寫分離:當一台伺服器不能滿足需求時,採用讀寫分離的方式進行**。

主從同步:

所有的寫都往主上操作,而從只進行同步:

讀寫分離:

使用負載均衡,寫往主,讀往從:

如何插入百萬條資料?

使用批量操作,批量操作不能使用**操作就不使用!盡量使用儲存過程來實現

關於資料庫方面的書籍

匿名 瀏覽 23590 次 問題暫時關閉 推薦於2016 01 24 15 44 01 最佳答案 資料庫系統導論 第七版 c.j.date著 機械工業出版社,資料庫領域中的權威著作,專業理論書籍出版至第七版,在業界是罕見的,可以想見該書具有多高的水平。資料庫系統概念 第三版 silberschatz...

mysql資料庫方面的操作

linux下執行mysql的sql檔案 mysql uroot proot 進入到mysql 然後執行source var ftp pub sogoodsoft.sql 即可。www.2cto.com 以下內容 linux 裡的mysql命令總結 學習linux mysql必備 一 總結一下linu...

cassandra 的CQL方面的事情

這幾天搞cassandra 0.8.4,本來剛用了乙個月,誰知道,現在這東東到了0.8.6。感覺發展挺快的。我這裡說一下我在弄cql的過程遇到的乙個問題,及解決過程。希望對你有幫助。我準備玩玩cqlsh 覺得這是熟悉cql的快捷 有效,對以後的生產過程也會要幫助,主要是監控,排查問題方面。對開發也是...