女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

常見的幾種MySQL數據優化方式分享

454398 ? 來源: Chinaunix ? 作者:專注的阿熊 ? 2020-10-11 10:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

選取最適合的字段屬性

2、盡可能的把字段設置成NOT NULL,這樣在執行查詢的時候,數據庫不用去比較NULL值。

使用連接(JOIN)來代替子查詢是(sub-Queries)

例:將客戶基本信息表中沒有任何訂單的客戶刪除掉

利用子查詢先從銷售信息表中將所有發出訂單的客戶ID取出,然后將結果傳遞給主查詢。使用子查詢可以一次性的完成很多邏輯上需要多個步驟才能完成的SQL操作,同時也可以避免事務或者表鎖死,并且寫起來也很容易。但是,在某些情況下,子查詢可以被更有效率的連接(JOIN)替代。

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

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

Swift Code

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

Union查詢可以把需要使用臨時表的兩條或者更多的select查詢合并成一個查詢中。在客戶端的查詢會話結束的時候,臨時表會被自動刪除,從而保證數據庫的整齊、高效。使用union來創建查詢的時候,只需要用union作為關鍵字把多個select語句連接起來就可以了(所有的select語句中的字段數目相同)

SELECT Name,BirthDate FROM author UNION

事務

BEGIN; INSERT INTO salesinfo SET CustomerID=14; UPDATE inventory SET Quantity=11 WHERE item=‘book’; COMMIT;

鎖定表

LOCK TABLE inventory WRITE SELECT Quantity FROM inventory WHERE Item=‘book’;

UPDATE inventory SET Quantity=11 WHERE Item=‘book’; UNLOCKTABLES

使用外鍵

例如,外鍵可以保證每一條銷售記錄都指向某一個存在的客戶。外鍵可以把customerinfo表中的CustomerID映射到salesinfo表中的CustomerID,任何的一條沒有合法CustomerID的記錄都不會被更新或者插入到salesinfo中。

NULL,PRIMARYKEY(CustomerID))TYPE=INNODB;

FOREIGNKEY(CustomerID) REFERENCES customerinfo(CustomerID) ON DELETE CASCADE)TYPE=INNODB;

使用索引

一般說來,索引應建立在那些將用于JOIN,WHERE判斷和ORDERBY排序的字段上。盡量不要對數據庫中某個含有大量重復的值的字段建立索引。對于一個ENUM類型的字段來說,出現大量重復值是很有可能的情況

優化查詢語句

在相同類型的字段間進行比較的操作。

例如:在一個date類型的字段上使用yeae()函數時,將會使索引不能發揮應有的作用。

SELECT * FROM books WHERE name like“MySQL%”

最后,應該注意避免在查詢中讓MySQL進行自動類型轉換,因為轉換過程也會使索引變得不起作用。
編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • MySQL
    +關注

    關注

    1

    文章

    851

    瀏覽量

    27764
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    mysql數據庫設計步驟

    mysql數據庫設計和優化
    發表于 05-13 11:00

    mysql數據優化方案

    MySQL千萬級大表優化解決方案
    發表于 08-19 12:18

    mysql的查詢優化

    mysql查詢優化
    發表于 03-12 11:06

    MySQL優化之查詢性能優化之查詢優化器的局限性與提示

    MySQL優化三:查詢性能優化之查詢優化器的局限性與提示
    發表于 06-02 06:34

    MySQL索引使用優化和規范

    MySQL - 索引使用優化和規范
    發表于 06-15 16:01

    MySql5.6性能優化最佳實踐

    MySql5.6性能優化最佳實踐
    發表于 09-08 08:47 ?13次下載
    <b class='flag-5'>MySql</b>5.6性能<b class='flag-5'>優化</b>最佳實踐

    MySQL數據庫:理解MySQL的性能優化優化查詢

    最近一直在為大家更新MySQL相關學習內容,可能有朋友不懂MySQL的重要性。在程序,語言,架構更新換代頻繁的今天,MySQL 恐怕是大家使用最多的存儲數據庫了。由于
    的頭像 發表于 07-02 17:18 ?3334次閱讀
    <b class='flag-5'>MySQL</b><b class='flag-5'>數據</b>庫:理解<b class='flag-5'>MySQL</b>的性能<b class='flag-5'>優化</b>、<b class='flag-5'>優化</b>查詢

    盤點MySQL常見問題及解答

    MySQL常見問題及答案匯總,MySQL是一種開放源代碼的關系型數據庫管理系統。數據庫按照數據
    的頭像 發表于 01-03 15:25 ?2665次閱讀

    如何優化MySQL百萬數據的深分頁問題

    我們日常做分頁需求時,一般會用limit實現,但是當偏移量特別大的時候,查詢效率就變得低下。本文將分四個方案,討論如何優化MySQL百萬數據的深分頁問題,并附上最近優化生產慢SQL的實
    的頭像 發表于 04-06 15:12 ?2110次閱讀

    淺談mysql自有方式采集獲取監控數據

    那我們今天就介紹一下完全采用 mysql 自有方式采集獲取監控數據,在單體下達到最快速、方便、損耗最小。
    的頭像 發表于 05-18 10:04 ?656次閱讀
    淺談<b class='flag-5'>mysql</b>自有<b class='flag-5'>方式</b>采集獲取監控<b class='flag-5'>數據</b>

    MySQL高級進階:索引優化

    MySQL官方對于索引的定義:索引是幫助MySQL高效獲取數據數據結構。
    的頭像 發表于 06-11 11:13 ?839次閱讀
    <b class='flag-5'>MySQL</b>高級進階:索引<b class='flag-5'>優化</b>

    MySQL數據庫管理與應用

    MySQL數據庫管理與應用 MySQL是一種廣泛使用的關系型數據庫管理系統,被認為是最流行和最常見的開源
    的頭像 發表于 08-28 17:15 ?1262次閱讀

    mysql主從復制主要有幾種模式

    MySQL主從復制是MySQL數據庫中常用的一種數據復制方式,用于實現數據的備份、負載均衡、故障
    的頭像 發表于 11-16 14:15 ?1443次閱讀

    MySQL性能優化方法

    MySQL 性能優化是一項關鍵的任務,可以提高數據庫的運行速度和效率。以下是一些優化方法,包括具體代碼和詳細優化方案。
    的頭像 發表于 11-22 09:59 ?936次閱讀

    常見網絡負載均衡的幾種方式

    常見網絡負載均衡的幾種方式包括:DNS負載均衡、反向代理負載均衡、IP負載均衡、應用層負載均衡、鏈路層負載均衡。以下是小編對幾種常見的網絡負
    的頭像 發表于 03-06 11:14 ?488次閱讀