麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 大量讀寫的mysql表怎么優(yōu)化?

大量讀寫的mysql表怎么優(yōu)化?

來源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-10-13 11:53:03 1697169183

一、大量讀寫的mysql表優(yōu)化步驟

單表優(yōu)化

除非單表數(shù)據(jù)未來會(huì)一直不斷上漲,否則不要一開始就考慮拆分,拆分會(huì)帶來邏輯、部署、運(yùn)維的各種復(fù)雜度,一般以整型值為主的表在千萬級(jí)以下,字符串為主的表在五百萬以下是沒有太大問題的。而事實(shí)上很多時(shí)候MySQL單表的性能依然有不少優(yōu)化空間,甚至能正常支撐千萬級(jí)以上的數(shù)據(jù)量:

字段

盡量使用TINYINT、SMALLINT、MEDIUM_INT作為整數(shù)類型而非INT,如果非負(fù)則加上UNSIGNEDVARCHAR的長(zhǎng)度只分配真正需要的空間使用枚舉或整數(shù)代替字符串類型盡量使用TIMESTAMP而非DATETIME,單表不要有太多字段,建議在20以內(nèi)避免使用NULL字段,很難查詢優(yōu)化且占用額外索引空間用整型來存IP

索引

索引并不是越多越好,要根據(jù)查詢有針對(duì)性的創(chuàng)建,考慮在WHERE和ORDER BY命令上涉及的列建立索引,可根據(jù)EXPLAIN來查看是否用了索引還是全表掃描應(yīng)盡量避免在WHERE子句中對(duì)字段進(jìn)行NULL值判斷,否則將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描值分布很稀少的字段不適合建索引,例如”性別”這種只有兩三個(gè)值的字段字符字段只建前綴索引字符字段較好不要做主鍵不用外鍵,由程序保證約束盡量不用UNIQUE,由程序保證約束使用多列索引時(shí)主意順序和查詢條件保持一致,同時(shí)刪除不必要的單列索引

查詢SQL

可通過開啟慢查詢?nèi)罩緛碚页鲚^慢的SQL不做列運(yùn)算:SELECT id WHERE age + 1 = 10,任何對(duì)列的操作都將導(dǎo)致表掃描,它包括數(shù)據(jù)庫(kù)教程函數(shù)、計(jì)算表達(dá)式等等,查詢時(shí)要盡可能將操作移至等號(hào)右邊sql語句盡可能簡(jiǎn)單:一條sql只能在一個(gè)cpu運(yùn)算;大語句拆小語句,減少鎖時(shí)間;一條大sql可以堵死整個(gè)庫(kù)不用SELECT *OR改寫成IN:OR的效率是n級(jí)別,IN的效率是log(n)級(jí)別,in的個(gè)數(shù)建議控制在200以內(nèi)不用函數(shù)和觸發(fā)器,在應(yīng)用程序?qū)崿F(xiàn)避免%xxx式查詢少用JOIN使用同類型進(jìn)行比較,比如用’123’和’123’比,123和123比盡量避免在WHERE子句中使用!=或<>操作符,否則將引擎放棄使用索引而進(jìn)行全表掃描對(duì)于連續(xù)數(shù)值,使用BETWEEN不用IN:SELECT id FROM t WHERE num BETWEEN 1 AND 5列表數(shù)據(jù)不要拿全表,要使用LIMIT來分頁,每頁數(shù)量也不要太大

延伸閱讀:

二、sql緩存

緩存可以發(fā)生在這些層次:

MySQL內(nèi)部:在系統(tǒng)調(diào)優(yōu)參數(shù)介紹了相關(guān)設(shè)置數(shù)據(jù)訪問層:比如MyBatis針對(duì)SQL語句做緩存,而Hibernate可以精確到單個(gè)記錄,這里緩存的對(duì)象主要是持久化對(duì)象Persistence Object應(yīng)用服務(wù)層:這里可以通過編程手段對(duì)緩存做到更精準(zhǔn)的控制和更多的實(shí)現(xiàn)策略,這里緩存的對(duì)象是數(shù)據(jù)傳輸對(duì)象Data Transfer ObjectWeb層:針對(duì)web頁面做緩存瀏覽器客戶端:用戶端的緩存

可以根據(jù)實(shí)際情況在一個(gè)層次或多個(gè)層次結(jié)合加入緩存。這里重點(diǎn)介紹下服務(wù)層的緩存實(shí)現(xiàn),目前主要有兩種方式:

直寫式(Write Through):在數(shù)據(jù)寫入數(shù)據(jù)庫(kù)后,同時(shí)更新緩存,維持?jǐn)?shù)據(jù)庫(kù)與緩存的一致性。這也是當(dāng)前大多數(shù)應(yīng)用緩存框架如Spring Cache的工作方式。這種實(shí)現(xiàn)非常簡(jiǎn)單,同步好,但效率一般。回寫式(Write Back):當(dāng)有數(shù)據(jù)要寫入數(shù)據(jù)庫(kù)時(shí),只會(huì)更新緩存,然后異步批量的將緩存數(shù)據(jù)同步到數(shù)據(jù)庫(kù)上。這種實(shí)現(xiàn)比較復(fù)雜,需要較多的應(yīng)用邏輯,同時(shí)可能會(huì)產(chǎn)生數(shù)據(jù)庫(kù)與緩存的不同步,但效率非常高。
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
微博feed系統(tǒng)的推模式和拉模式的架構(gòu)是怎樣的?

一、微博feed系統(tǒng)的推模式架構(gòu)1、發(fā)布服務(wù)負(fù)責(zé)生成用戶的消息,將消息推送到數(shù)據(jù)發(fā)布中心。2、推送服務(wù)在接收到新消息后,根據(jù)消息的類型和內(nèi)容...詳情>>

2023-10-13 13:28:55
Oracle數(shù)據(jù)庫(kù)運(yùn)行越來越慢,應(yīng)該怎么優(yōu)化?

一、Oracle數(shù)據(jù)庫(kù)運(yùn)行越來越慢的優(yōu)化方法1、應(yīng)用層優(yōu)化應(yīng)用程序的設(shè)計(jì)和開發(fā)中,可以采用合理的數(shù)據(jù)查詢語句來減少數(shù)據(jù)庫(kù)的 I/O 操作次數(shù),例如...詳情>>

2023-10-13 13:27:44
mysql當(dāng)數(shù)據(jù)同時(shí)屬于多個(gè)分類時(shí),該怎么查詢?

一、mysql當(dāng)數(shù)據(jù)同時(shí)屬于多個(gè)分類時(shí),該怎么查詢1、使用 AND 連接符可以將多個(gè)分類條件使用 AND 連接符連接起來,下面是代碼示例:SELECT * FRO...詳情>>

2023-10-13 13:23:03
hive里面的分區(qū)表和分桶表一般用于什么場(chǎng)景?

一、hive里面的分區(qū)表的一般使用場(chǎng)景 數(shù)據(jù)量非常大:數(shù)據(jù)量非常大的情況下,通過分區(qū)可以進(jìn)行數(shù)據(jù)分割,方便管理和維護(hù)。數(shù)據(jù)需要按照某種規(guī)則...詳情>>

2023-10-13 13:20:29
Python爬蟲是什么?

一、爬蟲的基本原理Python爬蟲的基本原理是通過發(fā)送HTTP請(qǐng)求獲取網(wǎng)頁的內(nèi)容,然后解析網(wǎng)頁的結(jié)構(gòu),提取出所需的數(shù)據(jù)。它使用HTTP庫(kù)向目標(biāo)網(wǎng)站發(fā)...詳情>>

2023-10-13 12:34:56
快速通道
主站蜘蛛池模板: 杨玉环三级dvd| 亚洲免费综合色在线视频| 亚洲日韩欧洲无码av夜夜摸| 99视频精品在线| zoom和okzoom在线视频| 奇米网奇米色| 操女人电影| 看看镜子里我怎么玩你| 我和岳乱妇三级高清电影| 亚洲不卡1卡2卡三卡2021麻豆| 任你操网站| 日韩美香港a一级毛片| 免费无遮挡肉动漫在线观看| 免费日本黄色片| 丁香狠狠色婷婷久久综合 | 8x视频在线观看| 8x视频在线观看| 被公侵幕岬奈奈美中文字幕| 男男动漫全程肉无删减有什么| 男女一区二区三区免费| 秋霞影院国产| 亚洲欧洲精品成人久久曰影片 | 黄色a级| 波多野结衣电影免费在线观看| 小情侣高清国产在线播放| 久久99热66这里只有精品一| 饭冈加奈子黑人解禁在线播放| 伊人色综合久久天天网| 性片的生活| 亚洲骚片| 久久久久久夜精品精品免费啦| 日本里番全彩acg里番下拉式| 最新国产三级在线不卡视频| 亚洲欧美成人日韩| 亚洲永久精品ww47| 成人免费夜片在线观看| 伊人久久精品一区二区三区| 在线播放五十路乱中文| 美女久久久久久久久久久| 又粗又硬又大又爽免费观看| 2023av在线播放|