MySQL核心原理4

2021-10-08 10:40:22 字數 1692 閱讀 3465

效能優化

1.硬體選擇

cpu:oltp 高可用小事務查詢、olap分析系統倉庫

ram:越大越好

快磁碟儲存:ssd、陣列

優網路、系統:關dns、mysql

接入區dmg

內網core:dns、mysql

檔案控制代碼開啟數量即開闢io通道可命令:ulimit -n檢視    1024

2. 快取

redis、memcrched 記憶體中,減少mysql壓力

快取穿透:布隆過濾器bloom filter

快取雪崩:主從機制加高可用方案、高併發限流降級、資料預熱

主[從]複製:使用者、授權、開日誌

master->binary log二進位制日誌<-io thread->[relay log<->sql thread]

master_log_pos=0  從**開始、replicate_do_db 過濾

級聯主從解決不同步

3.分庫分表 mycat

分庫:系統複雜度上公升,聯合查詢、資料聚合

分表:水平拆分,2000萬以下資料可用索引,再多查詢時間指數型增加,系統複雜度上公升,拆分規則(取餘分表、一次hash)

4.mysql配置作用域 熱載入dynamic

全域性引數、會話引數

找配置檔案、覆蓋的

sort_buffer_size/join_buffer_size                  快取池256~2m

innodb_buffer_pool_size                               物理機80~90%給它

innodb_buffer_read/write_io_thread             cpu核數2倍

innodb_print_all_deadlocks=1                      死鎖日誌

innodb_log_file(buffer)_size                          預設48m

innodb_flush_log_at_trx_commit=1

刷盤   buffer    oscache(0:mysql程序級別,1:v,2:作業系統級別)       logfile

刷髒數   innodb_io_capacity  預設zoom

庫表設計:1nf 多列        2nf 多關聯           3nf   外來鍵

5.慢查詢定位:業務驅動、測試驅動、慢查詢日誌

time

user@host

query_time        lock_time           row_sent

rows_examined

set  timestamp

select

mysqldumpslow  --help

-s   order  排序、-t   num  前幾名

慢查詢排查:執行計畫看type、rows、filtered、extra、key、key_len

show profile 分析sql調優,會話級別屬性先開啟

6.sql優化

1. 基於索引完成掃瞄(sql結果集)

2.索引不用函式或運算

3.where  like    %放右邊

4.索引掃瞄,聯合索引左->右越多越好

5.索引排序

6.有效列

7.join  小結果驅動大的

MySQL核心原理2

一 引擎 1.csv儲存引擎 適用於1.快速匯入匯出 2.匯入到csv引擎資料庫 2.archive 壓縮協議 arz 存,20 1占用磁碟少,只可insert和select,只許自增id鍵 適用於1.日誌 文件資料備份 2.大裝置高頻資料採集 3.memory 資料在記憶體效率高,表限定大小16m...

MySQL核心知識學習之路(4)

作為乙個後端工程師,想必沒有人沒用過資料庫,跟我一起複習一下mysql吧,本文是我學習 mysql實戰45講 的總結筆記的第四篇,總結了mysql的鎖相關知識。所謂全域性鎖,就是對整個資料庫例項加鎖,其命令為 mysql flush tables with read lock 以下該命令會簡稱為ft...

angularJS核心原理

一 angularjs優點和缺點 優點 1.1免去重複勞動 獲取元素 給元素加事件 建立元素 1.2接管ui angularjs根據資料建立ui元素,免去手工建立ui元素。1.3自動同步 根據資料個數建立對應的html元素。缺點 二 angularjs一切皆資料 三 angularjs三要素 4.1...