欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

MySQL中優(yōu)化的方法

這篇文章主要介紹MySQL中優(yōu)化的方法,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)公司是專業(yè)的和靜網(wǎng)站建設(shè)公司,和靜接單;提供成都做網(wǎng)站、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行和靜網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!

優(yōu)化方向

SQL優(yōu)化
  1. sql優(yōu)化分析

  2. 索引優(yōu)化

優(yōu)化數(shù)據(jù)庫對象
  1. 優(yōu)化表的數(shù)據(jù)類型

  2. 表拆分(水平、垂直)

  3. 反范式

  4. 使用中間表

優(yōu)化 mysql server
  1. mysql內(nèi)存管理優(yōu)化

  2. log機(jī)制及優(yōu)化

  3. 調(diào)整mysql并發(fā)參數(shù)

應(yīng)用優(yōu)化
  1. 數(shù)據(jù)庫連接池

  2. 使用緩存減少壓力

  3. 負(fù)載均衡建立集群

  4. 主主同步、主從復(fù)制

Mysql優(yōu)化問題分析定位

分析SQL執(zhí)行頻率
show status

例如:分析讀為主,還是寫為主
定位執(zhí)行效率低的SQl
慢查詢?nèi)罩径ㄎ?log-slow-queries = xxx(指定文件名)SHOW PROCESSLIST查看當(dāng)前正在進(jìn)行的線程,包括線程狀態(tài)、是否鎖表
分析SQL執(zhí)行計劃
explain "your sql"desc "your sql"- 部分參數(shù)分析
select_type: SIMPLE 簡單表,不使用表連接或子查詢PRIMARY 主查詢,即外層的查詢UNION SUBQUER 子查詢的第一個select

type: ALL 全表掃描
index 索引全掃描
range 索引范圍掃描
ref 使用非唯一索引或唯一索引的前綴掃描
eq_ref 類似ref,使用的索引是唯一索引const/system 單表中最多有一個匹配行NULL 不用訪問表或者索引,直接得到結(jié)果
show profile分析SQL
select @@have_profiling 是否支持
select @@profiling 是否開啟

執(zhí)行 "your sql"show profiles 
show profile block io for QUERY 17

索引優(yōu)化

索引的存儲分類
B-TREE索引:常見,大部分都支持HASH索引:只有memory引擎支持R-TREE索引:空間索引是MyISAM的一個特殊索引類型,主要用于地理空間數(shù)據(jù)類型
full-text索引:全文索引,MyISAM的一個特殊索引類型,innodb從5.6開始支持
索引的創(chuàng)建與刪除
添加索引ALTER Table `table_name` ADD PRIMARY KEY(`column`)ALTER Table `table_name` ADD UNIQUE(`column`)ALTER Table `table_name` ADD INDEX(`column`)ALTER Table `table_name` ADD FULLTEXT(`column`)

刪除ALTER Table `table_name` drop index index_name
Mysql中能使用索引的情況
匹配全值
匹配值范圍查詢
匹配最左前綴
僅僅對索引進(jìn)行查詢(覆蓋查詢)
匹配列前綴 (添加前綴索引)
部分精確+部分范圍
不能使用索引的場景
以%開關(guān)的like查詢
數(shù)據(jù)類型出現(xiàn)隱式轉(zhuǎn)換
復(fù)合索引查詢條件不包含最左部分
使用索引仍比全表掃描慢
用or分割開的條件

mysql語句優(yōu)化

定期優(yōu)化表
optimize table table_name 合并表空間碎片,對MyISAM、BDB、INNODB有效

如果提示不支持,可以用 mysql --skip-new 或者 mysql --safe-mode 來重啟,以便讓其他引擎支持
常用優(yōu)化
盡量避免全表掃描,對where及orderby的列建立索引
盡量避免where使用 != 或 <>盡量避免where子句用 or 連接條件
亂用%導(dǎo)致全表掃描
盡量避免where子句對字段進(jìn)行表達(dá)式操作
盡量避免where子句對字段進(jìn)行函數(shù)操作
覆蓋查詢,返回需要的字段
優(yōu)化嵌套查詢,關(guān)聯(lián)查詢優(yōu)于子查詢
組合索引或復(fù)合索引,最左索引原則
用exist代替in當(dāng)索引列有大量重復(fù)數(shù)據(jù)時,SQL查詢可能不會去利用索引

優(yōu)化數(shù)據(jù)庫對象

優(yōu)化表數(shù)據(jù)類型
PROCEDURE ANALYSE (16,256) 排除多于16個,大于256字節(jié)的ENUM建議"your sql" PROCEDURE ANALYSE ()
表拆分
垂直拆分
針對某些列常用、不常用

水平拆分
表很大
表中的數(shù)據(jù)有獨立性,能簡單分類
需要在表存放多種介質(zhì)
反范式
增加冗余列、增加派生列、重新組表和分割表
使用中間表
數(shù)據(jù)查詢量大
數(shù)據(jù)統(tǒng)計、分析場景

Mysql引擎比較

mysql有什么引擎?

MySQL中優(yōu)化的方法

關(guān)于表引擎的命令
show engines; 查看myql所支持的存儲引擎
show variables like '%storage_engine'; 查看mysql默認(rèn)的存儲引擎
show create table table_name 查看具體表使用的存儲引擎
關(guān)于innodb
1. 提供事務(wù)、回滾、系統(tǒng)奔潰修復(fù)能力、多版本并發(fā)控制事務(wù)2. 支持自增列3. 支持外鍵4. 支持事務(wù)以及事務(wù)相關(guān)聯(lián)功能5. 支持mvcc的行級鎖
關(guān)于MyISAM
1. 不支持事務(wù)、不支持行級鎖,只支持并發(fā)插入的表鎖,主要用于高負(fù)載的select2. 支持三種不同的存儲結(jié)構(gòu):靜態(tài)、動態(tài)、壓縮

調(diào)整參數(shù)優(yōu)化mysql后臺服務(wù)

MyISAM內(nèi)存優(yōu)化
#修改相應(yīng)服務(wù)器位置的配置文件 my.cnf

key_buffer_size
決定myisam索引塊緩存區(qū)的大小,直接影響表的存取效率,建議1/4可用內(nèi)存

read_buffer 讀緩存

write_buffer 寫緩存
InnoDB內(nèi)存優(yōu)化
innodb_buffer_pool_size 存儲引擎表數(shù)據(jù)和索引數(shù)據(jù)的最大緩存區(qū)大小

innodb_old_blocks_pct LRU算法 決定old sublist的比例

innodb_old_blocks_time LRU算法 數(shù)據(jù)轉(zhuǎn)移間隔時間
mysql并發(fā)參數(shù)
max_connections 最大連接數(shù),默認(rèn)151back_log 短時間內(nèi)處理大量連接,可適當(dāng)增大

table_open_cache 控制所有SQL執(zhí)行線程可打開表緩存的數(shù)量,受其他參數(shù)制約

thread_cache_size 控制緩存客戶服務(wù)線程數(shù)量,加快數(shù)據(jù)庫連接速度,根據(jù)threads_created/connections來衡量是否合適

innodb_lock_wait_timeout 控制事務(wù)等待行鎖時間,默認(rèn)50ms

Mysql應(yīng)用優(yōu)化介紹

為什么要做應(yīng)用優(yōu)化
  • 數(shù)據(jù)的重要性

  • mysql服務(wù)及自身性能瓶頸

  • 保證大型系統(tǒng)穩(wěn)定可靠運行

應(yīng)用優(yōu)化方法
  1. 使用連接池

  2. 減少對mysql的真實連接
    a. 避免相同數(shù)據(jù)重復(fù)執(zhí)行(查詢緩存)
    b. 使用mysql緩存(sql緩存)

  3. 負(fù)載均衡
    a. LVS 分布式
    b. 讀寫分離(主主復(fù)制、主從復(fù)制保證數(shù)據(jù)一致性)

以上是“MySQL中優(yōu)化的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站題目:MySQL中優(yōu)化的方法
網(wǎng)站路徑:http://chinadenli.net/article8/gdoiip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、關(guān)鍵詞優(yōu)化、定制開發(fā)、App設(shè)計、網(wǎng)頁設(shè)計公司、網(wǎng)站設(shè)計

廣告

聲明:本網(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)

外貿(mào)網(wǎng)站建設(shè)