影響MySQL數(shù)據(jù)庫性能主要有哪些因素

本文主要給大家簡單講講影響MySQL數(shù)據(jù)庫性能主要有哪些因素,相關(guān)專業(yè)術(shù)語大家可以上網(wǎng)查查或者找一些相關(guān)書籍補(bǔ)充一下,這里就不涉獵了,我們就直奔主題吧,希望影響MySQL數(shù)據(jù)庫性能主要有哪些因素這篇文章可以給大家?guī)硪恍?shí)際幫助。

創(chuàng)新互聯(lián)主營秀洲網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,手機(jī)APP定制開發(fā),秀洲h5重慶小程序開發(fā)搭建,秀洲網(wǎng)站營銷推廣歡迎秀洲等地區(qū)企業(yè)咨詢

影響數(shù)據(jù)庫性能的因素:

影響MySQL數(shù)據(jù)庫性能主要有哪些因素

很多sql性能是慢查詢造成的

目前的mysql版本中,并不能支持多cpu并發(fā)運(yùn)算,就是說一個(gè)sql只能用到一個(gè)cpu。常用qps、tps衡量cpu處理效率

        qps/tps:每秒處理的查詢量

影響MySQL數(shù)據(jù)庫性能主要有哪些因素

max_connections可以根據(jù)情況設(shè)置大一些。如果實(shí)際超出這個(gè)數(shù),會造成要用的云服務(wù)器無法連接數(shù)據(jù)庫,會出現(xiàn)500錯(cuò)誤

影響MySQL數(shù)據(jù)庫性能主要有哪些因素

影響MySQL數(shù)據(jù)庫性能主要有哪些因素

影響MySQL數(shù)據(jù)庫性能主要有哪些因素

大表帶來的問題:

影響MySQL數(shù)據(jù)庫性能主要有哪些因素

(一般滿足上述兩條的表會造成性能影響)

大表會產(chǎn)生慢查詢,讓數(shù)據(jù)庫很難在一定時(shí)間內(nèi)過濾出所需要的數(shù)據(jù)

影響MySQL數(shù)據(jù)庫性能主要有哪些因素

影響MySQL數(shù)據(jù)庫性能主要有哪些因素

影響MySQL數(shù)據(jù)庫性能主要有哪些因素

然而,分庫分表要消耗大量人力物力,還要冒著影響后端業(yè)務(wù)的風(fēng)險(xiǎn),不一定適合所有公司。還可以用另一種方式對大表進(jìn)行處理:

        大表歷史數(shù)據(jù)歸檔(盡量減少對前后端業(yè)務(wù)的影響)(比如歷史訂單)

        難點(diǎn):

                歸檔時(shí)間點(diǎn)的選擇

                如何進(jìn)行歸檔操作(對大表的操作,輕則主從延遲,重則大量阻塞影響業(yè)務(wù)訪問)

大事務(wù)帶來的問題:

        事務(wù)的特點(diǎn):

                原子性:不可分割的最小單元,要么全成功,要么全失敗

                一致性:從一種一致性狀態(tài)轉(zhuǎn)換到另一種一致性狀態(tài),在事務(wù)開始之前和事務(wù)結(jié)束后數(shù)據(jù)中數(shù)據(jù)的完整性沒有被破壞(比如,轉(zhuǎn)賬前和轉(zhuǎn)賬后的總金額一致)

                隔離性:要求一個(gè)事務(wù)對數(shù)據(jù)庫中的數(shù)據(jù)的修改,在未提交完成前對于其他事務(wù)是不可見的

                        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                持久性:  一旦事務(wù)提交,則其所有的修改就會永久保存到數(shù)據(jù)庫中。此時(shí)即使系統(tǒng)崩潰,已經(jīng)提交的修改數(shù)據(jù)也不會丟失

        什么是大事務(wù):

                定義:運(yùn)行時(shí)間較長,操作的數(shù)據(jù)比較多的事務(wù)

                風(fēng)險(xiǎn):

                        鎖定太多的數(shù)據(jù),造成大量的阻塞和鎖超時(shí)

                        回滾所需時(shí)間比較長(回滾過程中仍然會被鎖定)

                        執(zhí)行時(shí)間長,容易造成主從延遲(如果延遲1個(gè)小時(shí),這就...)

        如何處理大事務(wù):

                1.避免一次處理太多數(shù)據(jù)

                2.移出不必要在事務(wù)中的select操作

新版本的mysql對多核cpu支持改善了

centos參數(shù)優(yōu)化:

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                (上面的配置可以相應(yīng)調(diào)大)

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                        (上面的會決定tcp連接回收速度)

                        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                        (上面的會決定tcp連接、接收、發(fā)送緩沖區(qū)大小的默認(rèn)值、最大值。應(yīng)該相應(yīng)調(diào)大些)

                        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                        (上面參數(shù)用于減少失效連接所占用的tcp系統(tǒng)資源的數(shù)量,加快資源回收的效率。應(yīng)該改小些)

                        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                            影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                            影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                            影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                                 影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                                

mysql參數(shù):

        ......

基準(zhǔn)測試:

        基準(zhǔn)測試不同于壓力測試,壓力測試通常是真實(shí)數(shù)據(jù),基準(zhǔn)測試的數(shù)據(jù)由測試工具生成,只是簡化的壓力測試

                shell腳本寫測試程序

                運(yùn)行保存測試結(jié)果

                圖標(biāo)展示

                        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                 測試工具:

                        ab、mysqlslap、sysbench......

 

適當(dāng)反范式,適當(dāng)增加冗余提高查詢效率

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        (范式化提高了寫的性能,但降低了讀的性能)

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        (同一個(gè)表中可以屬于同一個(gè)索引的,在不同表中就無法放到同一個(gè)索引了)

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        (反范式化在修改數(shù)據(jù)的時(shí)候會需要更改多個(gè)地方)

數(shù)據(jù)類型的選擇:

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        注意:長度是字符,不是字節(jié)

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        (mysql為了更有效的優(yōu)化查詢,在內(nèi)存中,對字符串使用的是固定的寬度,特別是使用隱式的內(nèi)存零時(shí)表的時(shí)候,若把varchar寬度定義得更長,會消耗更多的內(nèi)存)

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

         影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        (date只保留到日期部分,不保留時(shí)分秒。比如存儲生日)

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        (mysql提供了足夠多的時(shí)間存儲類型,不要用字符串類型存儲日期、時(shí)間數(shù)據(jù))

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

mysql復(fù)制:

        web云服務(wù)器訪問過大后,可以通過增加web云服務(wù)器來解決。只要程序完全一樣,就可以很好的分擔(dān)這些負(fù)擔(dān)。但數(shù)據(jù)庫就不同了!

        mysql的復(fù)制是異步的,在同一時(shí)間點(diǎn)上,備庫和主庫的數(shù)據(jù)存在不一樣的情況,并且無法消除主庫和備庫之間的延遲

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        (復(fù)制并不能代替?zhèn)浞荨?fù)制無法對錯(cuò)誤操作刪除更改的數(shù)據(jù)進(jìn)行恢復(fù))

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        binlog日志中的記錄都是已經(jīng)執(zhí)行成功的,回滾、由于錯(cuò)誤執(zhí)行不成功的事務(wù)是不會被記錄的

        

表的復(fù)制,未完待續(xù)...

索引優(yōu)化:

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        (覆蓋索引之所以能提高查詢性能,因?yàn)樗饕笮”刃械拇笮⌒〉枚?,如果索引本身很大,就沒有覆蓋索引的必要了,特別是對select *的查詢,不可能有索引覆蓋到所有的列。所以查詢中不能使用太多列)

        覆蓋索引例子:

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                (完全可以通過索引來獲取到,使用了覆蓋索引)

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                (using where說明不能從索引中獲取索要查的數(shù)據(jù),也就是不能用到覆蓋索引,而必須把索引數(shù)據(jù)先放到內(nèi)存中,然后進(jìn)行where條件的過濾)

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                (有using index,使用了覆蓋查詢)

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        索引排序優(yōu)化的例子:

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                (上面是用索引來排序的。該表是innodb引擎。而同樣的數(shù)據(jù)結(jié)構(gòu),若是myisam引擎,extra會顯示using filesort)

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                (不管是myisam還是innodb,都沒有用到using filesort)

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                (此處用到了using filesort!索引升降序的規(guī)則必須和order by升降序規(guī)則一致才行,不然無法用到索引列排序)

                

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        (增加了并發(fā)性,提高了性能)

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        (重復(fù)索引完全沒必要,冗余索引有時(shí)候是可以有的)

        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        

sql優(yōu)化:

        獲取有性能問題的sql:

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        設(shè)置慢查詢:

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                (long_query_time單位秒)

                然而,慢查詢不大可能自己一個(gè)個(gè)看,還是要借助工具:

                        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                        影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        

        實(shí)時(shí)獲取有性能問題的sql:

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

        sql查詢的步驟:

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                

        如何確定查詢處理各個(gè)階段所消耗的時(shí)間:

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                

        特定sql的優(yōu)化:

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                (如果表中數(shù)據(jù)很多,count()查詢會很慢,可以再建立一個(gè)表,用于匯總:)

                影響MySQL數(shù)據(jù)庫性能主要有哪些因素

                可以每天凌晨的什么時(shí)候進(jìn)行count(*)的統(tǒng)計(jì),并寫入到匯總表。今天要查詢的話,就把匯總表中的數(shù)據(jù)和今天的數(shù)據(jù)進(jìn)行union all

影響MySQL數(shù)據(jù)庫性能主要有哪些因素就先給大家講到這里,對于其它相關(guān)問題大家想要了解的可以持續(xù)關(guān)注我們的行業(yè)資訊。我們的板塊內(nèi)容每天都會捕捉一些行業(yè)新聞及專業(yè)知識分享給大家的。

本文標(biāo)題:影響MySQL數(shù)據(jù)庫性能主要有哪些因素
標(biāo)題鏈接:http://muchs.cn/article30/jcghso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、靜態(tài)網(wǎng)站、軟件開發(fā)、網(wǎng)站改版做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)