溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL數(shù)據(jù)庫優(yōu)化具體可以從哪些方面入手

發(fā)布時間:2020-05-07 11:48:33 來源:億速云 閱讀:345 作者:三月 欄目:編程語言

本文主要給大家簡單講講MySQL數(shù)據(jù)庫優(yōu)化具體可以從哪些方面入手,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望MySQL數(shù)據(jù)庫優(yōu)化具體可以從哪些方面入手這篇文章可以給大家?guī)硪恍嶋H幫助。

MySQL數(shù)據(jù)庫優(yōu)化具體可以從哪些方面入手

 

一、優(yōu)化SQL語句
  

1、優(yōu)化查詢語句
  

(1)通過Explain和Describe關(guān)鍵字分析select查詢語句,從而使開發(fā)人員知道查詢效率低的原因。語法如下:explain select * from bookmanager where Name='admin' \G;
  

(2)通過添加索引進行優(yōu)化
  說起數(shù)據(jù)庫的性能,索引可能使最物美價廉的東西了。使用索引可以快速的定位表中的某條記錄,不用添加內(nèi)存、不用修改程序,也不用調(diào)用sql語句,只需執(zhí)行一個創(chuàng)建正確的索引,查詢速度就可能提高千倍萬倍。索引并不一定是主鍵或者唯一的字段,如果表中的某個字段總是被搜索,就可以為其創(chuàng)建索引。創(chuàng)建索引的語句如下:create index index_name on table_name(manName); 使用索引應(yīng)注意的事項:使用多列索引時,查詢條件必須使用索引的第一個字符。符;like關(guān)鍵字配置的字符串不能以符號“%”開頭;or關(guān)鍵字連接的所有條件都必須使用索引。如果or前后有一個條件的列不是索引,那么查詢中講不使用索引。
  

(3)優(yōu)化Order by
  有兩種方式如下:索引優(yōu)化:對by后的列添加索引,從而大達(dá)到優(yōu)化的目的;where+order by 的組合優(yōu)化:通過where進行限制后在進行order by。
  

(4)優(yōu)化group by(同3中通過加索引和where進行優(yōu)化)
  

(5)優(yōu)化limit
  

(6)優(yōu)化子查詢:在mysql中通過使用連接查詢來代替子查詢,從而達(dá)到優(yōu)化目的。原因:子查詢在執(zhí)行的時候 數(shù)據(jù)庫需要位內(nèi)層查詢語句的查詢結(jié)果建立一個臨時表,然后外層語句查詢臨時表,所以子查詢的效率比較低,而連接查詢就不存在這個問題。
  

2、優(yōu)化其他執(zhí)行語句
  

(1)優(yōu)化insert語句:禁用索引,禁用唯一性檢查,使用一條insert插入多條語句。
  

(2)優(yōu)化update語句:使用一個update語句同時做多個更新。
  

(3)優(yōu)化delete語句:刪除一條記錄的時間與索引的數(shù)量成正比。刪除一個表的所有行,使用truncate table Tbname 而不要使用delete from table。
 

 二、優(yōu)化數(shù)據(jù)庫結(jié)構(gòu)
  

1、優(yōu)化字段類型
  

數(shù)據(jù)庫最耗時的就是IO處理,所以盡可能減少IO讀寫量。數(shù)字類型:盡量不要使用double類型,不僅是長度問題,還有精度問題。對于整數(shù),數(shù)據(jù)量大時區(qū)分TinyInt、Int、BigInt,如果確定不實用負(fù)數(shù),添加unsigned定義;字符類型:盡量不要使用text類型,性能低于char和varchar,定長使用char,不定長使用varchar;時間類型:盡量不使用Timestamp,只精確到某一天的話,可用Date類型; Enum和Set:狀態(tài)字段用enum,如果存放可預(yù)先定義的屬性數(shù)據(jù)可以嘗試用set。
  

2、優(yōu)化字符編碼
  

3、適當(dāng)進行拆分
  

4、適當(dāng)增加冗余
  

5、優(yōu)化數(shù)據(jù)庫表
  

三、優(yōu)化Mysql云服務(wù)器
  

優(yōu)化Mysql云服務(wù)器要遵循以下的優(yōu)化原則:內(nèi)存中的數(shù)據(jù)要比磁盤上的數(shù)據(jù)訪問的快;讓數(shù)據(jù)盡可能長時間的留在內(nèi)存里能減少磁盤讀寫活動的工作量;讓索引信息留在內(nèi)存里要比讓數(shù)據(jù)記錄的內(nèi)容留在內(nèi)存里更為重要。

MySQL數(shù)據(jù)庫優(yōu)化具體可以從哪些方面入手就先給大家講到這里,對于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會捕捉一些行業(yè)新聞及專業(yè)知識分享給大家的。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI