国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
mysql日常運(yùn)維與參數(shù)調(diào)優(yōu)
1.修改t1表中id<5的數(shù)據(jù)
1)備份select * from t1 where id<5 into outfile '/tmp/t1id5.txt';2)執(zhí)行修改begin;update t1 set b=100,c=100 where id<5;select * from t1 where id<5;rollback;/commit;

 

2.表結(jié)構(gòu)變更
1)5.5版本:alter table t55 add c1 int;delete from t55 where id<100;(卡住一會后才執(zhí)行)2)5.6版本:use db1;alter table t55 add c1 int;delete from t55 where id<100;(執(zhí)行順暢)alter table t1 modify c1 varchar(90);delete from t55 where id<100;(卡住一會后才執(zhí)行)3)pt-online-schema-change工具./pt-online-schema-change --user=root --password=123456 --host=localhost --socket=/mysqldata/node4/mysqld.sock D=db55,t=t55 --alter "add c2 int" --print --dry-run

 

3.加權(quán)限
grant select,insert,delete on *.* to netease@'localhost' identified by '163';#mysql -unetease -p163 --socet=/mysqldata/node3/mysqld.sock --port=4001(登陸成功)grant select,insert,delete on *.* to netease@'localhost' identified by '123';#mysql -unetease -p163 --socet=/mysqldata/node3/mysqld.sock --port=4001(登陸失敗)

 

4.導(dǎo)數(shù)據(jù)

use db1;select count(*) from t1;(先看一下數(shù)據(jù)量)1)mysqldump導(dǎo)出#mysqldump -uroot -p123456 --single-transaction --socket=/mysqldata/node3/mysqld.sock db1 t1 > /tmp/t1.sqlgrant select on *.* to netease@'localhost' identified by '163';#mysqldump -unetease -p163 --socket=/mysqldata/node3/mysqld.sock db1 t1 > /tmp/t2.sql(報錯,沒有鎖表權(quán)限)#mysqldump -unetease -p163 --single-transaction --socket=/mysqldata/node3/mysqld.sock db1 t1 > /tmp/t2.sql(成功)#mysqldump -uroot -p123456 --single-transaction --socket=/mysqldata/node3/mysqld.sock db1 t1 -T /tmpuse db1;2)以file權(quán)限into outfile導(dǎo)出數(shù)據(jù)select * from t1 into outfile '/tmp/t1_2.txt';select t1.c,t3,b from t1.id=t3.id into outfile '/tmp/t13.txt';

 

5.數(shù)據(jù)庫慢問題
../tcpstat --port 4001 -t 1 -n 0(tcpstat,查看每一個tcp連接的響應(yīng)時間,percona公司出品)
參數(shù)調(diào)優(yōu)

為什么要調(diào)整參數(shù)
  • 不同服務(wù)器之間的配置,性能不一樣
  • 不同業(yè)務(wù)場景對數(shù)據(jù)的需求不一樣
  • mysql的默認(rèn)參數(shù)只是個參考值,并不適合所有的應(yīng)用場景
優(yōu)化之前我們需要知道什么
  • 服務(wù)器相關(guān)的配置
  • 業(yè)務(wù)相關(guān)的情況
  • mysql相關(guān)的配置
服務(wù)器相關(guān)的配置
  • 硬件情況
  • 操作系統(tǒng)版本
  • CPU,網(wǎng)卡節(jié)電模式
  • 服務(wù)器numa設(shè)置---內(nèi)存分片,cpu對應(yīng)內(nèi)存;
  • RAID卡緩存
磁盤調(diào)度策略--write back
  • 數(shù)據(jù)寫入cache即返回,數(shù)據(jù)異步的從cache刷入存儲介質(zhì)
磁盤調(diào)度策略--write through
  • 數(shù)據(jù)同時寫入cache和存儲介質(zhì)才返回寫入成功
write back 性能高于 write through 
而write through  的安全性更高。
RAID

RAID --廉價的存儲陣列

 

 
RAID0
  • 簡單就是將多塊盤當(dāng)做一塊盤來使用;容量是多盤的和,性能也是多盤之和;
  • 問題,就是當(dāng)其中一塊盤損壞后,無法保證其數(shù)據(jù)的安全性;
RAID1
  • 指兩塊盤做相互的鏡像--達(dá)到高可用
  • 問題,只能使用兩塊盤來做,存儲空間 有限制
RAID5
  • 至少使用三塊盤,總存儲空間只有兩塊;因為它需要存儲校驗數(shù)據(jù)塊
  • 高可用的實(shí)現(xiàn),是通過校驗數(shù)據(jù)塊,來恢復(fù)數(shù)據(jù);
  • 局限,只能壞一塊盤,才能通過另外兩塊盤的 存儲校驗數(shù)據(jù)塊,進(jìn)行數(shù)據(jù)恢復(fù),如果壞了兩塊盤則不能進(jìn)行數(shù)據(jù)恢復(fù)
RAID10
  • 先對兩塊盤做RAID1,再做RAID0
  • RAID1保證數(shù)據(jù)安全性,RAID0保證數(shù)據(jù)擴(kuò)展性;
  • 局限,做RAID1的兩塊盤同時壞了,則也不能保證數(shù)據(jù)安全性;
RAID如何保證數(shù)據(jù)安全
  • BBU(Backup  Battery Unit)
    • 保證在電池有電的情況下,即使服務(wù)器發(fā)生掉電或者宕機(jī),也能夠?qū)⒕彺嬷械臄?shù)據(jù)寫入到磁盤,從而保證數(shù)據(jù)的安全
注意事項

mysql有哪些注意事項
  • mysql的部署安裝
  • mysql的監(jiān)控
  • mysql參數(shù)調(diào)優(yōu)
部署mysql的要求
  • 推薦的mysql版本:>=mysql5.5
  • 推薦的mysql存儲引擎:innodb
系統(tǒng)調(diào)優(yōu)的依據(jù):監(jiān)控
  • 實(shí)時監(jiān)控mysql的SLOW log
  • 實(shí)時監(jiān)控數(shù)據(jù)服務(wù)器的負(fù)載情況
  • 實(shí)時監(jiān)控mysql內(nèi)部狀態(tài)值
網(wǎng)易內(nèi)部監(jiān)控的參數(shù):
  • binlog文件大?。∕B)
  • BufferPool命中率(%)
  • cpu利用率(%)
  • 磁盤讀操作延時(ms/op)
  • 磁盤讀取字節(jié)數(shù)(KB/s)
  • 磁盤讀取次數(shù)(次/秒)
  • 占用磁盤存儲空間(MB)
  • 磁盤寫入操作延時(ms/op)
  • 磁盤寫入字節(jié)數(shù)(KB/S)
  • 磁盤寫入次數(shù)(次/秒)
  • 磁盤IO利用率(%)
  • 占用內(nèi)存量(%)
  • 內(nèi)存使用率(%)
  • 一般事務(wù)提交操作(次/秒)
  • 刪除操作(次/秒)
  • 插入操作(次/秒)
  • 查詢操作(次/秒)
  • 更新操作(次/秒)
  • 二階段事務(wù)提交操作(次/秒)
通常關(guān)注哪些mysql  status
  • com_select/update/delete/insert
    •  看數(shù)據(jù)庫的請求是否變多
  • Bytes_received/Bytes_sent
    •  看 mysql總的吞吐量
  • Buffer Pool Hit Rate
    •  innodb內(nèi)存的命中率決定了性能
  • Threads_connected/Threads_created/Threads_running
    •   前兩個多的話, 可以判斷 應(yīng)用是否使用連接池,或者連接池使用是否合理
    •   活躍連接很多,說明數(shù)據(jù)庫很忙,可能是被人惡意攻擊;
為什么要調(diào)整mysql的參數(shù):
  • 需要根據(jù)業(yè)務(wù)區(qū)動態(tài)調(diào)整這個通用的mysql數(shù)據(jù)庫,使其變成專用數(shù)據(jù)庫
  • 有些參數(shù),很可能是老版本做的,可能是為了限流和保護(hù)用的,但是隨著機(jī)器的性能提高這些參數(shù),顯然是不合適的。
讀優(yōu)化

  • 合理利用索引對mysql查詢性能至關(guān)重用
  •  適當(dāng)?shù)恼{(diào)整mysql參數(shù)也能提升查詢性能
innodb_buffer_pool_size:
緩存池大小,innodb自己維護(hù)一塊內(nèi)存區(qū)域完成新老數(shù)據(jù)的替換
innodb_thread_concurrency:
innodb內(nèi)部并發(fā)控制參數(shù),設(shè)置為0代表不做控制
如果并發(fā)請求較多,餐宿設(shè)置較小,后進(jìn)來的請求將會排隊
寫優(yōu)化

  • 表結(jié)構(gòu)設(shè)計上使用自增字段作為表的主鍵
  • 只對合適的字段加索引,索引太多影響寫入性能
  • 監(jiān)控服務(wù)器磁盤IO情況,如果寫延遲較大則需要擴(kuò)容
  • 選擇正確的mysql版本,合理設(shè)置參數(shù)
哪些參數(shù)有助于提高寫入性能
  • innodb_flush_log_at_trx_commit&&sync_binlog
    • 控制redo log 刷新
    • 控制二進(jìn)制日志的刷新
  • innodb log file size 
  • innodb_io_capacity
  • innodb insert buffer 
innodb_flush_log_at_trx_commit:0,1,2
n = 0(高效,但不安全--無論服務(wù)器宕機(jī)或者mysql宕機(jī)都會丟數(shù)據(jù))
每隔一秒,把事務(wù)日志緩存區(qū)的數(shù)據(jù)寫到日志文件中,以及把日志文件的數(shù)據(jù)刷新到磁盤上
n = 1 (低效,非常安全--都不會丟數(shù)據(jù))
每個事務(wù)提交時候,把事務(wù)日志從緩存區(qū)寫到日志文件中,并且,刷新日志文件的數(shù)據(jù)到磁盤上,優(yōu)化使用此模式保證數(shù)據(jù)安全性
n = 2(高效,但不安全--服務(wù)器宕機(jī)會丟數(shù)據(jù))
每個事務(wù)提交的時候,把事務(wù)日志數(shù)據(jù)從緩存區(qū)寫到日志文件中,每隔一秒,刷新一次日志文件,但不一定刷新到磁盤上,而是取決于操作系統(tǒng)的調(diào)度;
sync_binlog
  • 控制每次寫入binlog,是否都需要進(jìn)行一次持久化
如何保證事務(wù)安全
  • innodb_flush_log_at_trx_commit&&sync_binlog 都設(shè)為1
  • 事務(wù)要和binlog保證一致性---才不會導(dǎo)致主從不一致
事務(wù)提交過程

 

 
串行有哪些問題
  • SAS盤每秒只能有150--200個Fsync
  • 換算到數(shù)據(jù)每秒只能執(zhí)行50--60個事務(wù)
社區(qū)和官方的改進(jìn)

 

 
redo log 的作用
在數(shù)據(jù)庫 崩潰后的數(shù)據(jù)恢復(fù);
redo log的問題
  • 如果寫入頻繁導(dǎo)致redo log里對應(yīng)的最老的數(shù)據(jù)臟頁還沒有刷新到磁盤,此時數(shù)據(jù)庫將卡住,強(qiáng)制刷新臟頁到磁盤
  • mysql默認(rèn)配置文件才10M,非常容易寫滿,生成環(huán)境中應(yīng)該提高redo log 的大小
innodb_io_capacity
  • innodb每次刷多少個臟頁,決定innodb存儲引擎的吞吐能力。
  • 在SSD等高性能存儲介質(zhì)下,應(yīng)該提高該參數(shù)以提高數(shù)據(jù)庫的性能。
insert buffer 
  • 順序讀寫 VS 隨機(jī)讀寫
  • 隨機(jī)請求性能遠(yuǎn)小于順序請求
將盡可能多的隨機(jī)請求合并為順序請求才是提高數(shù)據(jù)庫性能的關(guān)鍵
insert buffer 對二級索引,的增刪改,的操作緩存到 insert buffer中,然后將這些隨機(jī)請求合并成順序請求;
小結(jié):
  • 服務(wù)器配置要合理(內(nèi)核版本,磁盤調(diào)度策略,RAID卡緩存)
  • 完善的監(jiān)控系統(tǒng),提前發(fā)現(xiàn)問題
  • 數(shù)據(jù)庫版本要跟上,不要太新,也不要太老
  • 數(shù)據(jù)性能優(yōu)化:
    • 查詢優(yōu)化:索引優(yōu)化為主,參數(shù)優(yōu)化為輔
    • 寫入優(yōu)化:業(yè)務(wù)優(yōu)化為主,參數(shù)優(yōu)化為輔

總結(jié)


 

  • 日常運(yùn)維工作:
    • 導(dǎo)數(shù)據(jù),
      • mysqldump,select into outfile,
      • 避免鎖庫鎖表,mysqldump --single-transaction;
    • 數(shù)據(jù)修改
      • 做好備份,
      • 開事務(wù)做,
      • 分批修改,
      • 避免高峰期
    • 表結(jié)構(gòu)變更
      • 低峰做
      • 5.6后包含online ddl,
      • 使用pt-online-schema-change:避免主從延遲,限速;
    • 加權(quán)限
      • 最低權(quán)限,
      • 避免授權(quán)時修改密碼
    • 不求最快,但求最穩(wěn);
  • 參數(shù)調(diào)優(yōu)
    • RAID0,RAID1,RAID5,RADI10,
    • RAID如何保證數(shù)據(jù)安全:
      • BBU,服務(wù)器掉電,使用電池電量將緩存內(nèi)容刷新到磁盤
    • 有助于提高寫性能的參數(shù):
      • innodb_flush_log_at_trx_commit 控制redo log 刷新
      • sync_binlog?。嚎刂贫M(jìn)制日志的刷新
      • innodb log file size:  重做日志循環(huán)寫,如果太小,當(dāng)新的寫入來的時候,原日志文件寫完且還沒有持久化到磁盤,這時候就要阻塞寫入;所以,增大事務(wù)日志大小,可能提升寫性能;
      • innodb insert buffer:
        • 插入緩沖,將隨機(jī)讀寫,通過這個緩沖,合并成可能的順序讀寫,以提高寫性能。
        • 只對二級且非唯一索引生效;
      • innodb_io_capacity:
        • innodb每次刷新多少個臟頁,決定innodb存儲引擎的吞吐能力
        • 在SSD,下應(yīng)該提高該參數(shù)以提高數(shù)據(jù)庫性能;
    • 讀優(yōu)化:
      • innodb_buffer_pool_size:緩存池大小
      • innodb_buffer_pool_size:并發(fā)控制; 
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
什么影響了MySQL性能
mysql innodb 性能優(yōu)化
大牛出招|分分鐘解決 MySQL 查詢速度慢與性能差
MySQL性能管理及架構(gòu)設(shè)計(一):什么影響了數(shù)據(jù)庫查詢速度、什么影響了MySQL性能
101 個 MySQL 的調(diào)節(jié)和優(yōu)化的提示
一份超詳細(xì)的MySQL高性能優(yōu)化實(shí)戰(zhàn)總結(jié)!
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服