設(shè)計規(guī)范建議:
1).索引規(guī)范
顯式指定自增 int/bigint unsigned not null 作為主鍵
不使用外鍵
合理利用覆蓋索引,但字段盡量不超過5個
合理利用最左索引(前綴索引/部分索引)
及時刪除冗余索引
選擇適當?shù)乃饕樞颍x擇性高條件靠前
基數(shù)( Cardinality )很低的字段不創(chuàng)建索引(MySQL還不支持 bitmap 索引)
采用第三方系統(tǒng)實現(xiàn)text/blob全文檢索
常用排序(ORDER BY)、分組(GROUP BY)、取唯一(DISTINCT)字段上創(chuàng)建索引
單表索引數(shù)量不超過5個
索引字段條件不使用函數(shù)
2).開發(fā)環(huán)境
啟用log_queries_not_using_indexes
設(shè)置long_query_time為最小值
定期檢查分析slow log
授權(quán)和生產(chǎn)環(huán)境一致
關(guān)閉Query Cache
設(shè)置較小InnoDB Buffer Pool、key buffer size
數(shù)據(jù)量不能太少,否則有些性能問題無法提前規(guī)避
3).行為規(guī)范
批量導入、導出數(shù)據(jù)須提前通知DBA,請求協(xié)助觀察
推廣活動或上線新功能須提前通知DBA,請求壓力評估
不使用SUPER權(quán)限連接數(shù)據(jù)庫
單表多次ALTER操作必須合并為一次操作
數(shù)據(jù)庫DDL及重要SQL及早提交DBA評審
重要業(yè)務(wù)庫須告知DBA重要等級、數(shù)據(jù)備份及時性要求
不在業(yè)務(wù)高峰期批量更新、查詢數(shù)據(jù)庫
提交線上DDL需求,所有SQL語句須有備注說明
4).硬件
NUMA新架構(gòu),CPU直接存取內(nèi)存,更高效
CPU一般不是瓶頸,但MySQL多核支持仍不佳
設(shè)備越來越廉價,大內(nèi)存解決很多問題
SSD應用越來越廣泛,未來是主力
RAID卡可有效提升IOPS及數(shù)據(jù)安全(RAID 10 vs RAID 5)
RAID卡必須配備BBU,設(shè)置FORCE WB
優(yōu)化建議:
1).系統(tǒng)
升級到64位
/tmp使用/dev/shm的tmpfs
內(nèi)核
IO調(diào)度:deadline,noop,反正不要cfq
VM管理:vm.swappiness=0
2).文件系統(tǒng):xfs/zfs
全B+樹,高效
分配組,提高并發(fā)度
延遲分配,減少IO
mount:nobarrier、data=ordered,writeback
3).MySQL配置
memlock
open_files_limit
max_connections
long_query_time
table_open_cache
key_buffer_size
query_cache_size
tmp_table_size/max_heap_table_size
innodb buffer pool
innodb_flush_log_at_trx_commit
interactive_timeout/wait_timeout
transaction_isolation
innodb_log_file_size
innodb_data_file_path
innodb_max_dirty_pages_pct
標題名稱:MySQL數(shù)據(jù)庫設(shè)計規(guī)范和優(yōu)化建議-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://jinyejixie.com/article18/dpojgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、手機網(wǎng)站建設(shè)、面包屑導航、網(wǎng)站策劃、網(wǎng)站收錄、做網(wǎng)站
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)