99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

常見(jiàn)的幾種MySQL數(shù)據(jù)優(yōu)化方式分享

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

掃碼添加小助手

加入工程師交流群

選取最適合的字段屬性

2、盡可能的把字段設(shè)置成NOT NULL,這樣在執(zhí)行查詢(xún)的時(shí)候,數(shù)據(jù)庫(kù)不用去比較NULL值。

使用連接(JOIN)來(lái)代替子查詢(xún)是(sub-Queries)

例:將客戶(hù)基本信息表中沒(méi)有任何訂單的客戶(hù)刪除掉

利用子查詢(xún)先從銷(xiāo)售信息表中將所有發(fā)出訂單的客戶(hù)ID取出,然后將結(jié)果傳遞給主查詢(xún)。使用子查詢(xún)可以一次性的完成很多邏輯上需要多個(gè)步驟才能完成的SQL操作,同時(shí)也可以避免事務(wù)或者表鎖死,并且寫(xiě)起來(lái)也很容易。但是,在某些情況下,子查詢(xún)可以被更有效率的連接(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)之所以更有效率一些,是因?yàn)镸ySQL不需要在內(nèi)存中創(chuàng)建臨時(shí)表來(lái)完成這個(gè)邏輯上的需求兩個(gè)步驟的查詢(xún)工作。

Union查詢(xún)可以把需要使用臨時(shí)表的兩條或者更多的select查詢(xún)合并成一個(gè)查詢(xún)中。在客戶(hù)端的查詢(xún)會(huì)話(huà)結(jié)束的時(shí)候,臨時(shí)表會(huì)被自動(dòng)刪除,從而保證數(shù)據(jù)庫(kù)的整齊、高效。使用union來(lái)創(chuàng)建查詢(xún)的時(shí)候,只需要用union作為關(guān)鍵字把多個(gè)select語(yǔ)句連接起來(lái)就可以了(所有的select語(yǔ)句中的字段數(shù)目相同)

SELECT Name,BirthDate FROM author UNION

事務(wù)

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

使用外鍵

例如,外鍵可以保證每一條銷(xiāo)售記錄都指向某一個(gè)存在的客戶(hù)。外鍵可以把customerinfo表中的CustomerID映射到salesinfo表中的CustomerID,任何的一條沒(méi)有合法CustomerID的記錄都不會(huì)被更新或者插入到salesinfo中。

NULL,PRIMARYKEY(CustomerID))TYPE=INNODB;

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

使用索引

一般說(shuō)來(lái),索引應(yīng)建立在那些將用于JOIN,WHERE判斷和ORDERBY排序的字段上。盡量不要對(duì)數(shù)據(jù)庫(kù)中某個(gè)含有大量重復(fù)的值的字段建立索引。對(duì)于一個(gè)ENUM類(lèi)型的字段來(lái)說(shuō),出現(xiàn)大量重復(fù)值是很有可能的情況

優(yōu)化查詢(xún)語(yǔ)句

在相同類(lèi)型的字段間進(jìn)行比較的操作。

例如:在一個(gè)date類(lèi)型的字段上使用yeae()函數(shù)時(shí),將會(huì)使索引不能發(fā)揮應(yīng)有的作用。

SELECT * FROM books WHERE name like“MySQL%”

最后,應(yīng)該注意避免在查詢(xún)中讓MySQL進(jìn)行自動(dòng)類(lèi)型轉(zhuǎn)換,因?yàn)檗D(zhuǎn)換過(guò)程也會(huì)使索引變得不起作用。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    859

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    mysql數(shù)據(jù)庫(kù)設(shè)計(jì)步驟

    mysql數(shù)據(jù)庫(kù)設(shè)計(jì)和優(yōu)化
    發(fā)表于 05-13 11:00

    mysql數(shù)據(jù)庫(kù)優(yōu)化方案

    MySQL千萬(wàn)級(jí)大表優(yōu)化解決方案
    發(fā)表于 08-19 12:18

    mysql的查詢(xún)優(yōu)化

    mysql查詢(xún)優(yōu)化
    發(fā)表于 03-12 11:06

    MySQL優(yōu)化之查詢(xún)性能優(yōu)化之查詢(xún)優(yōu)化器的局限性與提示

    MySQL優(yōu)化三:查詢(xún)性能優(yōu)化之查詢(xún)優(yōu)化器的局限性與提示
    發(fā)表于 06-02 06:34

    MySQL索引使用優(yōu)化和規(guī)范

    MySQL - 索引使用優(yōu)化和規(guī)范
    發(fā)表于 06-15 16:01

    MySql5.6性能優(yōu)化最佳實(shí)踐

    MySql5.6性能優(yōu)化最佳實(shí)踐
    發(fā)表于 09-08 08:47 ?13次下載
    <b class='flag-5'>MySql</b>5.6性能<b class='flag-5'>優(yōu)化</b>最佳實(shí)踐

    MySQL數(shù)據(jù)庫(kù):理解MySQL的性能優(yōu)化、優(yōu)化查詢(xún)

    最近一直在為大家更新MySQL相關(guān)學(xué)習(xí)內(nèi)容,可能有朋友不懂MySQL的重要性。在程序,語(yǔ)言,架構(gòu)更新?lián)Q代頻繁的今天,MySQL 恐怕是大家使用最多的存儲(chǔ)數(shù)據(jù)庫(kù)了。由于
    的頭像 發(fā)表于 07-02 17:18 ?3351次閱讀
    <b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)</b>庫(kù):理解<b class='flag-5'>MySQL</b>的性能<b class='flag-5'>優(yōu)化</b>、<b class='flag-5'>優(yōu)化</b>查詢(xún)

    盤(pán)點(diǎn)MySQL常見(jiàn)問(wèn)題及解答

    MySQL常見(jiàn)問(wèn)題及答案匯總,MySQL是一種開(kāi)放源代碼的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。數(shù)據(jù)庫(kù)按照數(shù)據(jù)結(jié)
    的頭像 發(fā)表于 01-03 15:25 ?2678次閱讀

    如何優(yōu)化MySQL百萬(wàn)數(shù)據(jù)的深分頁(yè)問(wèn)題

    我們?nèi)粘W龇猪?yè)需求時(shí),一般會(huì)用limit實(shí)現(xiàn),但是當(dāng)偏移量特別大的時(shí)候,查詢(xún)效率就變得低下。本文將分四個(gè)方案,討論如何優(yōu)化MySQL百萬(wàn)數(shù)據(jù)的深分頁(yè)問(wèn)題,并附上最近優(yōu)化生產(chǎn)慢SQL的實(shí)
    的頭像 發(fā)表于 04-06 15:12 ?2119次閱讀

    淺談mysql自有方式采集獲取監(jiān)控數(shù)據(jù)

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

    MySQL高級(jí)進(jìn)階:索引優(yōu)化

    MySQL官方對(duì)于索引的定義:索引是幫助MySQL高效獲取數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)。
    的頭像 發(fā)表于 06-11 11:13 ?856次閱讀
    <b class='flag-5'>MySQL</b>高級(jí)進(jìn)階:索引<b class='flag-5'>優(yōu)化</b>

    MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用

    MySQL數(shù)據(jù)庫(kù)管理與應(yīng)用 MySQL是一種廣泛使用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),被認(rèn)為是最流行和最常見(jiàn)的開(kāi)源
    的頭像 發(fā)表于 08-28 17:15 ?1285次閱讀

    mysql主從復(fù)制主要有幾種模式

    MySQL主從復(fù)制是MySQL數(shù)據(jù)庫(kù)中常用的一種數(shù)據(jù)復(fù)制方式,用于實(shí)現(xiàn)數(shù)據(jù)的備份、負(fù)載均衡、故障
    的頭像 發(fā)表于 11-16 14:15 ?1460次閱讀

    MySQL性能優(yōu)化方法

    MySQL 性能優(yōu)化是一項(xiàng)關(guān)鍵的任務(wù),可以提高數(shù)據(jù)庫(kù)的運(yùn)行速度和效率。以下是一些優(yōu)化方法,包括具體代碼和詳細(xì)優(yōu)化方案。
    的頭像 發(fā)表于 11-22 09:59 ?974次閱讀

    常見(jiàn)網(wǎng)絡(luò)負(fù)載均衡的幾種方式

    常見(jiàn)網(wǎng)絡(luò)負(fù)載均衡的幾種方式包括:DNS負(fù)載均衡、反向代理負(fù)載均衡、IP負(fù)載均衡、應(yīng)用層負(fù)載均衡、鏈路層負(fù)載均衡。以下是小編對(duì)幾種常見(jiàn)的網(wǎng)絡(luò)負(fù)
    的頭像 發(fā)表于 03-06 11:14 ?522次閱讀