主頁 > 教育培訓(xùn) > 電腦培訓(xùn) > MySQL學(xué)習(xí):數(shù)據(jù)庫十大優(yōu)化技巧

MySQL學(xué)習(xí):數(shù)據(jù)庫十大優(yōu)化技巧

  隨著mysql的越來越龐大,數(shù)據(jù)冗余也會越來越多,每次檢索mysql的時間也會成本的增加,這時需要優(yōu)化mysql就需要數(shù)據(jù)庫工程師了。

  這是看到朋友的博客,覺得不錯,轉(zhuǎn)載過來的。。

  1. 優(yōu)化你的MySQL查詢緩存

  在MySQL服務(wù)器上進行查詢,可以啟用高速查詢緩存。讓數(shù)據(jù)庫引擎在后臺悄悄的處理是提高性能的最有效方法之一。當(dāng)同一個查詢被執(zhí)行多次時,如果結(jié)果是從緩存中提取,那是相當(dāng)快的。

  但主要的問題是,它是那么容易被隱藏起來以至于我們大多數(shù)程序員會忽略它。在有些處理任務(wù)中,我們實際上是可以阻止查詢緩存工作的。

  // query cache does NOT work

  $r = mysql_query("SELECT username FROM user WHERE signup_date >= CURDATE()");

  // query cache works!

  $today = date("Y-m-d");

  $r = mysql_query("SELECT username FROM user WHERE signup_date >= '$today'");

  // query cache does NOT work

  $r = mysql_query("SELECT username FROM user WHERE signup_date >= CURDATE()");

  // query cache works!

  $today = date("Y-m-d");

  $r = mysql_query("SELECT username FROM user WHERE signup_date >= '$today'");

  2. 用EXPLAIN使你的SELECT查詢更加清晰

  使用EXPLAIN關(guān)鍵字是另一個MySQL優(yōu)化技巧,可以讓你了解MySQL正在進行什么樣的查詢操作,這可以幫助你發(fā)現(xiàn)瓶頸的所在,并顯示出查詢或表結(jié)構(gòu)在哪里出了問題。

  EXPLAIN查詢的結(jié)果,可以告訴你那些索引正在被引用,表是如何被掃描和排序的等等。

  實現(xiàn)一個SELECT查詢(最好是比較復(fù)雜的一個,帶joins方式的),在里面添加上你的關(guān)鍵詞解釋,在這里我們可以使用phpMyAdmin, 他會告訴你表中的結(jié)果。舉例來說,假如當(dāng)我在執(zhí)行joins時,正忘記往一個索引中添加列,EXPLAIN能幫助我找到問題的所在。

  

優(yōu)化MySQL

 

  添加索引到group_id field后

  

MySQL數(shù)據(jù)庫優(yōu)化技巧

 

  3. 利用LIMIT 1取得唯一行

  有時,當(dāng)你要查詢一張表是,你知道自己只需要看一行。你可能會去的一條十分獨特的記錄,或者只是剛好檢查了任何存在的記錄數(shù),他們都滿足了你的WHERE子句。

免責(zé)聲明:該文觀點僅代表作者本人,查查吧平臺系信息發(fā)布平臺,僅提供信息存儲空間服務(wù),不承擔(dān)相關(guān)法律責(zé)任。圖片涉及侵權(quán)行為,請發(fā)送郵件至85868317@qq.com舉報,一經(jīng)查實,本站將立刻刪除。返回查查吧首頁,查看更多>>
提示

該文觀點僅代表作者本人,查查吧平臺系信息發(fā)布平臺,僅提供信息存儲空間服務(wù),不承擔(dān)相關(guān)法律責(zé)任。圖片涉及侵權(quán)行為,請發(fā)送郵件至85868317@qq.com舉報,一經(jīng)查實,本站將立刻刪除。

優(yōu)惠商城

更多