1樓:匿名使用者
表都設計好
bai了,那就在查詢優化。
du大表在zhi
dao前小表在後
應盡量避免在 where 子句
版中使用權
!=或<>操作符
應盡量避免在 where 子句中使用 or 來連線條件in 、 not in 也要慎用,盡量用exists代替應盡量避免在 where 子句中對字段進行表示式操作應盡量避免在where子句中對字段進行函式操作不要在 where 子句中的「=」左邊進行函式、算術運算或其他表示式運算
如何進行sql效能優化
2樓:life布可
進行sql效能優化的方法:
1、sql語句不要寫的太複雜。乙個sql語句要盡量簡單,不要巢狀太多層。
2、使用『臨時表』快取中間結果。簡化sql語句的重要方法就是採用臨時表暫存中間結果,這樣可以避免程式中多次掃瞄主表,也大大減少了阻塞,提高了併發效能。
4、盡量避免使用!=或<>操作符。在where語句中使用!=或<>,引擎將放棄使用索引而進行全表掃瞄。
5、盡量避免使用 or 來連線條件;在 where 子句中使用 or 來連線條件,引擎將放棄使用索引而進行全表掃瞄。可以使用
select id from t where num=10
union all
select id from t where num=20
替代select id from t where num=10 or num=20
6、盡量避免使用in和not in:在 where 子句中使用 in和not in,引擎將放棄使用索引而進行全表掃瞄。可以使用
select id from t where num between 10 and 20
替代select id from t where num in (10,20)
7、可以考慮強制查詢使用索引
select * from table force index(pri) limit 2;(強制使用主鍵)
select * from table force index(hollis_index) limit 2;(強制使用索引"hollis_index")
select * from table force index(pri,hollis_index) limit 2;(強制使用索引"pri和hollis_index")
8、盡量避免使用表示式、函式等操作作為查詢條件;盡量避免大事務操作,提高系統併發能力。盡量避免使用游標;任何地方都不要使用 select * from t ,用具體的字段列表代替「*」,不要返回用不到的任何字段。
9、盡可能的使用 varchar/nvarchar 代替 char/nchar。盡量使用數字型字段,若只含數值資訊的字段盡量不要設計為字元型,這會降低查詢和連線的效能,並會增加儲存開銷。
10、索引並不是越多越好,索引固然可以提高相應的 select 的效率,但同時也降低了 insert 及 update 的效率、並不是所有索引對查詢都有效,sql是根據表中資料來進行查詢優化的,當索引列有大量資料重複時,sql查詢可能不會去利用索引。
用sql語句顯示A,B兩個表的結果,A,B結構一樣,用姓名和日期關聯,顯示結
建立測試表 create table a 姓名 varchar 10 日期 varchar 10 其他 varchar 10 create table b 姓名 varchar 10 日期 varchar 10 其他 varchar 10 insert into a values 張三 2017 0...
sql語句查詢根據表中列該列在兩個不同
1 在計 bai算機中,開啟foxtable軟體,新建du乙個表 zhi格,比如學生的評價成績dao表內,並輸入資料,如下圖所示。容2 接著,滑鼠左鍵單擊選擇選單下的 雜項 如下圖所示。3 然後,在選單欄目中,滑鼠左鍵單擊 sql查詢 如下圖所示。4 接著,在 sql查詢 視窗上,選擇資料來源,如下...
SQL查詢表中兩個字段對應的另表的資料,應該怎麼操作
根據 news表中的 news type id 1 查出 news type表中的 透明點評 這條資料,透明點評 是最後需要查出來的位置資料。子查詢或者表連線 比如表連線的方式就可以寫成 select n.id,t.type name,title from news as n inner join ...