程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 總結MySQL建表、查詢優化的一些適用小技能

總結MySQL建表、查詢優化的一些適用小技能

編輯:MySQL綜合教程

總結MySQL建表、查詢優化的一些適用小技能。本站提示廣大學習愛好者:(總結MySQL建表、查詢優化的一些適用小技能)文章只能為提供參考,不一定能成為您想要的結果。以下是總結MySQL建表、查詢優化的一些適用小技能正文


MySQL建表階段長短常主要的一個環節,表構造的利害、好壞直接影響著後續的治理保護,趕在今天下班前分享總結小我MySQL建表、MySQL查詢優化積聚的一些適用小技能。

技能1、數據表冗余記載添加時光與更新時光
我們用到的許多數據表年夜多情形下都邑有表記載的“添加時光(add_time)”,我建議年夜家再新增一個記載“更新時光(update_time)”字段,在我的任務裡須要為市場部、運營部等樹立各類報表,而許多報內外的數據都是須要到年夜記載內外去查詢的,假如直接查詢年夜表的話,查詢速度相當慢。那末,我們的處理方法就是樹立各類數據快照,數據快照都是經由過程劇本准時跑的。假設,哪一天原始數據表湧現了成績,那末快照數據也會有成績,這個時刻我們的快照劇本就得從新跑一份修復好了的數據,如許有了update_time更新時光這個字段,我們就可以很快定位記載更新的時光。

技能2、不要擯棄insert ignore into與replace into
年夜家確定寫過一些劇本輪回將記載拔出到數據表,例如應用PHP劇本。假如時代的一條SQL拔出掉敗,那末後續的拔出將終止,你可以在劇本裡繞過這個拔出毛病,一個好的方法是應用ignore症結字來屏障拔出毛病。假如,你的數據內外曾經存在有將要拔出的雷同記載,那末這個時刻就會發生拔出報錯,應用 insert ignore into將繞開這個毛病,持續下一筆記錄的拔出。

假如你的表構造設計了獨一索引的話,那末應用replace into來更新你的數據表記載再好不外了,特別是你在寫一個劇本的時刻,你就不須要在劇本裡先查詢數據表能否存在該筆記錄,假如存在,則更新;假如不存在則拔出。你可以直接應用replace into,它會主動到數據表檢測,假如在獨一索引字段存在該值,則會先刪除該筆記錄,然後再拔出新記載;假如獨一索引字段不存在該值,則直接拔出數據表,簡略且異常適用。

技能3、給你的表樹立獨一索引
許多情形下樹立表獨一索引,能給我們省下許多費事事,想下面說的replace into就必需是有獨一索引,固然,許多人愛好用到的自增主鍵ID雖然也是獨一索引,我建議是能在其他常常湧現在where前提屁股前面的字段,而且值是獨一的話可以加個索引乃至獨一索引,查詢速度將會進步許多。

說在最初:固然,insert ignore into與replace into年夜家要依據本身的需求來肯定,紛歧定就合適你如今的需求;我只是提醒年夜家還有這麼些個適用的小常識年夜家可以靈巧應用到項目裡邊。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved