久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放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、where及order by涉及的列上建立索引;2、在where子句中避免對字段進行null值判斷,避免使用“!=”或操作符,避免使用or來連接條件;3、慎用in和not in;4、避免在索引列上使用計算。

      mysql如何避免全屏掃描?

      MYSQL避免全表掃描

      1.對查詢進行優(yōu)化,應(yīng)盡量避免全表掃描,首先應(yīng)考慮在 where 及 order by 涉及的列上建立索引

      2.應(yīng)盡量避免在 where 子句中對字段進行 null 值判斷,否則將導(dǎo)致引擎放棄使用索引而進行全表掃描

      如:select id from t where num is null可以在num上設(shè)置默認值0,確保表中num列沒有null值,然后這樣查詢:select id from t where num=0

      3.應(yīng)盡量避免在 where 子句中使用!=或操作符,否則引擎將放棄使用索引而進行全表掃描。

      4.應(yīng)盡量避免在 where 子句中使用or 來連接條件,否則將導(dǎo)致引擎放棄使用索引而進行全表掃描,(可以使用union)

      5.in 和 not in 也要慎用,否則會導(dǎo)致全表掃描(能用 between 就不要用 in)

      6.下面的查詢也將導(dǎo)致全表掃描。

      select id from t where name like '%李%',select id from t where name like '%李'

      若要提高效率,可以使用此格式select id from t where name like '李%',也可以考慮全文檢索。

      7.避免在索引列上使用計算,也就是說,應(yīng)盡量避免在 where 子句中對字段進行表達式操作和函數(shù)操作,這將導(dǎo)致引擎放棄使用索引而進行全表掃描。

      如:select id from t where num/2=100應(yīng)改為:select id from t where num=100*2

      8.很多時候用 exists 代替 in 是一個好的選擇:exists用于檢查子查詢是否至少會返回一行數(shù)據(jù),該子查詢實際上并不返回任何數(shù)據(jù),而是返回值true或false。

      select num from a where num in(select num from b)

      用下面的語句替換:select num from a where exists (select 1 from b where num=a.num)

      9.任何地方都不要使用 select from t ,用具體的字段列表代替“”,不要返回用不到的任何字段。

      10.用>=替代>

      高效: SELECT * FROM EMP WHERE DEPTNO >=4

      低效: SELECT * FROM EMP WHERE DEPTNO >3

      兩者的區(qū)別在于, 前者DBMS將直接跳到第一個DEPT等于4的記錄,而后者將首先定位到DEPTNO=3的記錄并且向前掃描到第一個DEPT大于3的記錄。

      11.用Where子句替換having子句

      推薦教程:mysql視頻教程

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