真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

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

優(yōu)化方向

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

  2. 索引優(yōu)化

優(yōu)化數(shù)據(jù)庫(kù)對(duì)象
  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ù)庫(kù)連接池

  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í)行計(jì)劃
explain "your sql"desc "your sql"- 部分參數(shù)分析
select_type: SIMPLE 簡(jiǎn)單表,不使用表連接或子查詢PRIMARY 主查詢,即外層的查詢UNION SUBQUER 子查詢的第一個(gè)select

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

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

索引優(yōu)化

索引的存儲(chǔ)分類
B-TREE索引:常見,大部分都支持HASH索引:只有memory引擎支持R-TREE索引:空間索引是MyISAM的一個(gè)特殊索引類型,主要用于地理空間數(shù)據(jù)類型
full-text索引:全文索引,MyISAM的一個(gè)特殊索引類型,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中能使用索引的情況
匹配全值
匹配值范圍查詢
匹配最左前綴
僅僅對(duì)索引進(jìn)行查詢(覆蓋查詢)
匹配列前綴 (添加前綴索引)
部分精確+部分范圍
不能使用索引的場(chǎng)景
以%開關(guān)的like查詢
數(shù)據(jù)類型出現(xiàn)隱式轉(zhuǎn)換
復(fù)合索引查詢條件不包含最左部分
使用索引仍比全表掃描慢
用or分割開的條件

mysql語句優(yōu)化

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

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

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

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

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

Mysql引擎比較

mysql有什么引擎?

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

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

調(diào)整參數(shù)優(yōu)化mysql后臺(tái)服務(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 存儲(chǔ)引擎表數(shù)據(jù)和索引數(shù)據(jù)的最大緩存區(qū)大小

innodb_old_blocks_pct LRU算法 決定old sublist的比例

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

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

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

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

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

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

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

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

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

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

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

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


文章題目:MySQL中優(yōu)化的方法
文章地址:http://weahome.cn/article/gdoiip.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部