0031-每特學(xué)院螞蟻課堂mysql優(yōu)化之sql語句調(diào)優(yōu)_第1頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、SQL 優(yōu)化技巧 使用 group by 分組查詢是,默認分組后,還會排序,可能會降低速度,在 group by 后面增加 order by null 就可以防止排序.explain select * from emp group by deptno order by null; 有些情況下,可以使用連接來替代子查詢。因為使用 jo臨時表。ySQL 不需要在內(nèi)存中創(chuàng)建select * from dept, emp where dept.deptno=emp.deptno; 簡單處理方式select * from dept left join emp on dept.deptno=emp.dep

2、tno; 左外連接,更ok! 對查詢進行優(yōu)化,要盡量避免全表掃描,首先應(yīng)考慮在 where 及 order by 涉及的列上建立索引應(yīng)盡量避免在 where 子句中對字段進行 null 值判斷,否則將導(dǎo)致引擎放棄使用索引而進行全表掃描,如:select id from t where num is null最好不要給數(shù)據(jù)庫留 NULL,盡可能的使用 NOT NULL 填充數(shù)據(jù)庫.備注、描論之類的可以設(shè)置為 NULL,其他的,最好不要使用 NULL。不要以為 NULL 不需要空間,比如:char(100) 型,在字段建立時,空間就固定了, 不管是否值(NULL 也包含在內(nèi)),都是占用 100 個

3、字符的空間的,如果是 varchar 這樣的變長字段, null 不占用空間??梢栽?num 上設(shè)置默認值 0,確保表中 num 列沒有 null 值,然后這樣查詢:select id from t where num = 0sql 語句調(diào)優(yōu)查看 http:/article/1511164574773數(shù)據(jù)引擎使用的myisam引擎.INNODB引擎 myisam / innodb/ memory: 如果表對事務(wù)要求不高,同時是以查詢和添加為主的,考慮使用 myisam,比如中的 發(fā)帖表,回復(fù)表.: 對事務(wù)要求高,保存的數(shù)據(jù)都是重要數(shù)據(jù),建議使用 INNODB,比如訂單表,賬號表.MyISAM

4、和 INNODB 的區(qū)別1. 事務(wù)安全(MyISAM 不支持事務(wù),INNODB 支持事務(wù))2. 查詢和添加速度(MyISAM 批量速度快)3.4.5.支持全文索引(MyISAM 支持全文索引,INNODB 不支持全文索引)鎖機制(MyISAM 時表鎖,innodb 是行鎖)外鍵 MyISAM 不支持外鍵, INNODB 支持外鍵. (在開發(fā)中,通常不設(shè)置外鍵,通常是在程序中保證數(shù)據(jù)的一致)Memory,比如數(shù)據(jù)變化頻繁,不需要入庫,同時又頻繁的查詢和修改,考慮使用 memory,速度極快.(如果重啟的話,數(shù)據(jù)就不存在了)Myisam 注意事項如果你的數(shù)據(jù)庫的舉例說明:引擎是 myisam,請一

5、定記住要定時進行碎片整理create insert insertinserttable test100(idunsigned ,name varchar(32)engine=myisam;oo otest100test100 test100values(1,aaaaa);values(2,bbbb);values(3,ccccc);應(yīng)該定義對 myisam 進行整理optimize table test100;數(shù)據(jù)庫數(shù)據(jù)備份手動方式cmd 控制臺:在環(huán)境變量中配置dump u -賬號 環(huán)境變量數(shù)據(jù)庫 表名 1 表名 2. 文件路徑案例:dump -u -root root test d:temp.sql比如: 把 temp 數(shù)據(jù)庫備份到 d:temp.bakdump -u root -proot test f:temp.bak如果你希望備份是,數(shù)據(jù)庫的某幾張表dump -u root -proot test dept f:temp.dept.sql如何使用備份文件恢復(fù)的數(shù)據(jù).控制臺source d:temp.dept.bak自動方式把備份數(shù)據(jù)庫的指令,寫入到 bat 文件, 然后通過任務(wù)管理器去定時調(diào)用mytask.bat 內(nèi)容是:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論