久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      怎么提高mysql的查詢速度

      提高mysql查詢速度的方法:1、選取最適用的字段屬性;2、使用連接(JOIN)來代替子查詢;3、使用聯(lián)合(UNION)來代替手動創(chuàng)建的臨時表;4、添加索引;5、對查詢進行優(yōu)化,盡量避免全表掃描;6、盡量使用表變量來代替臨時表等等。

      怎么提高mysql的查詢速度

      本教程操作環(huán)境:windows7系統(tǒng)、mysql8版本、Dell G3電腦。

      查詢速度慢的原因

      從程序員的角度

      • 查詢語句寫的不好

      • 沒建索引,索引建的不合理或索引失效

      • 關(guān)聯(lián)查詢有太多的join

      從服務器的角度

      • 服務器磁盤空間不足
      • 服務器調(diào)優(yōu)配置參數(shù)設置不合理

      MySQL數(shù)據(jù)庫優(yōu)化的八種方式

      1、選取最適用的字段屬性

      MySQL可以很好的支持大數(shù)據(jù)量的存取,但是一般說來,數(shù)據(jù)庫中的表越小,在它上面執(zhí)行的查詢也就會越快。因此,在創(chuàng)建表的時候,為了獲得更好的性能,我們可以將表中字段的寬度設得盡可能小。

      例如,在定義郵政編碼這個字段時,如果將其設置為CHAR(255),顯然給數(shù)據(jù)庫增加了不必要的空間,甚至使用VARCHAR這種類型也是多余的,因為CHAR(6)就可以很好的完成任務了。同樣的,如果可以的話,我們應該使用MEDIUMINT而不是BIGIN來定義整型字段。

      另外一個提高效率的方法是在可能的情況下,應該盡量把字段設置為NOTNULL,這樣在將來執(zhí)行查詢的時候,數(shù)據(jù)庫不用去比較NULL值。

      對于某些文本字段,例如“省份”或者“性別”,我們可以將它們定義為ENUM類型。因為在MySQL中,ENUM類型被當作數(shù)值型數(shù)據(jù)來處理,而數(shù)值型數(shù)據(jù)被處理起來的速度要比文本類型快得多。這樣,我們又可以提高數(shù)據(jù)庫的性能。

      2、使用連接(JOIN)來代替子查詢(Sub-Queries)

      MySQL從4.1開始支持SQL的子查詢。這個技術(shù)可以使用SELECT語句來創(chuàng)建一個單列的查詢結(jié)果,然后把這個結(jié)果作為過濾條件用在另一個查詢中。例如,我們要將客戶基本信息表中沒有任何訂單的客戶刪除掉,就可以利用子查詢先從銷售信息表中將所有發(fā)出訂單的客戶ID取出來,然后將結(jié)果傳遞給主查詢,如下所示:

      DELETE FROM customerinfo WHERE CustomerID NOT IN (SELECT CustomerID FROM salesinfo)

      使用子查詢可以一次性的完成很多邏輯上需要多個步驟才能完成的SQL操作,同時也可以避免事務或者表鎖死,并且寫起來也很容易。但是,有些情況下,子查詢可以被更有效率的連接(JOIN)..替代。例如,假設我們要將所有沒有訂單記錄的用戶取出來,可以用下面這個查詢完成:

      SELECT * FROM customerinfo WHERE CustomerID NOT IN (SELECTC ustomerID FROM salesinfo)

      如果使用連接(JOIN)..來完成這個查詢工作,速度將會快很多。尤其是當salesinfo表中對CustomerID建有索引的話,性能將會更好,查詢?nèi)缦拢?/p>

      SELECT * FROM customerinfo LEFT JOIN salesinfo  ON customerinfo.CustomerID=salesinfo.CustomerID  WHERE salesinfo.CustomerID ISNULL

      連接(JOIN)..之所以更有效率一些,是因為MySQL不需要在內(nèi)存中創(chuàng)建臨時表來完成這個邏輯上的需要兩個步驟的查詢工作。

      3、使用聯(lián)合(UNION)來代替手動創(chuàng)建的臨時表

      MySQL從4.0的版本開始支持union查詢,它可以把需要使用臨時表的兩條或

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號