主頁 > 資料庫 > MySQL資料庫的性能分析 ---圖書《軟體性能測驗分析與調優實踐之路》-手稿節選

MySQL資料庫的性能分析 ---圖書《軟體性能測驗分析與調優實踐之路》-手稿節選

2022-11-12 08:43:17 資料庫

1  、MySQL資料庫的性能監控

1.1、如何查看MySQL資料庫的連接數

連接數是指用戶已經創建多少個連接,也就是MySQL中通過執行 SHOW  PROCESSLIST命令輸出結果中運行著的執行緒個數的詳情,如圖所示,

SHOW PROCESSLIST默認情況下只顯示前100條記錄的詳情,如果超過100條后需要顯示所有,可以通過執行SHOW  FULL  PROCESSLIST命令,如圖所示,

 

show variables like 'max_connections'可以查詢資料庫中可以支持的最大連接數,如圖所示,

本文作者:張永清, 轉載請注明: https://www.cnblogs.com/laoqing/p/16880718.html  來源于博客園 ,本文摘選自《軟體性能測驗分析與調優實踐之路》

 show global status like 'max_used_connections'可以查詢當前已經使用過的最大連接數,如圖所示,

 1.2、如何查看MySQL資料庫當前運行的事務與鎖

事務是對資料庫執行一種帶有原子性、一致性、隔離性、持久性的資料操作,在MySQL中如果需要使用事務,那么資料存盤時必須選用MySQL的innodb引擎,使用innodb引擎后,在MySQL系統資料庫information_schema的innodb_trx表中記錄了資料庫當前正在運行的事務,

innodb_trx表中包含的常用欄位說明如表所示,

表 innodb_trx表中包含的常用欄位說明

欄位

描述

trx_id

事務ID

trx_state

事務的狀態,一般包括RUNNING、LOCK WAIT、ROLLING BACK 和 COMMITTING著幾種不同的狀態

trx_started

事務開始運行的時間

trx_requested_lock_id

事務需要等待的但已經被別的程式鎖定的資源id,一般可以和INNODB_LOCKS表關聯在一起獲取更多的被鎖定的資源的詳細資訊

trx_wait_started

事務開始等待時間

trx_mysql_thread_id

事務對應的MySQL執行緒id

trx_query

事務正在執行的SQL陳述句

trx_operation_state

事務操作的狀態

trx_tables_in_use

事務使用到的資料庫表的數量

trx_tables_locked

事務鎖定的資料庫表的數量

trx_rows_locked

事務鎖定的資料記錄行數

trx_rows_modified

事務更改的資料記錄行數

trx_unique_checks

事務是否打開唯一性檢查的標識

 

trx_foreign_key_checks

事務是否打開外鍵檢查的標識

 

trx_isolation_level

事務隔離級別,一般分為Read Uncommitted(未提交讀取)、Read Committed(已提交讀取)、Repeatable Read(可重復讀取)、Serializable(序列化)四種不同的級別

trx_weight

事務的權重

trx_lock_memory_bytes

事務鎖住的記憶體大小,單位為 位元組

trx_concurrency_tickets

事務并發票數

trx_last_foreign_key_error

 

事務最后一次的外鍵檢查的錯誤資訊

 

MySQL系統資料庫information_schema的 innodb_locks表中記錄了innodb資料庫引擎當前產生的鎖的情況, innodb_locks表中包含的常用欄位說明如表所示,

欄位

描述(本文作者:張永清, 轉載請注明: https://www.cnblogs.com/laoqing/p/16880718.html  來源于博客園 ,本文摘選自《軟體性能測驗分析與調優實踐之路》

lock_id

鎖的id

lock_trx_id

擁有鎖的事務 ID,可以和 INNODB_TRX 表關聯查詢得到事務的詳細資訊

lock_mode

鎖的模式,鎖的模式一般包含:

行級鎖:包括S(共享鎖)、X(排它鎖)、IS(意向共享鎖)、IX(意向排它鎖),

表級鎖:包括S_GAP(共享間隙鎖)、X_GAP(排它間隙鎖)、IS_GAP(意向共享間隙鎖)、IX_GAP(意向排它間隙鎖) 和 AUTO_INC(自動遞增鎖)

lock_type

鎖的型別,包括RECORD(行級鎖)和TABLE(表級鎖)

lock_table

當前被鎖定的或者包含鎖定記錄的表的名稱

lock_index

當 LOCK_TYPE為RECORD 時,表示鎖定的索引的名稱,否則直接回傳NULL

lock_space

當 LOCK_TYPE為RECORD 時,表示鎖定行的表空間 ID,否則直接回傳NULL

lock_page

當 LOCK_TYPE為RECORD時,表示鎖定記錄行的頁數,否則直接回傳NULL

lock_rec

當 LOCK_TYPE為RECORD時,表示鎖定的資料行的數量

lock_data

當 LOCK_TYPE為RECORD時,表示鎖定記錄行的主鍵

MySQL系統資料庫information_schema的innodb_lock_waits表中記錄了innodb資料庫引擎當前運行的資料庫事務等待鎖的情況,innodb_lock_waits表中包含的常用欄位說明如表所示,本文作者:張永清, 轉載請注明: https://www.cnblogs.com/laoqing/p/16880718.html  來源于博客園 ,本文摘選自《軟體性能測驗分析與調優實踐之路》

表innodb_lock_waits表中包含的常用欄位說明

欄位

描述

requesting_trx_id

請求事務的 ID

Requested_lock_id

事務所等待的鎖定的 ID,可以和 INNODB_LOCKS 表關聯查詢

Blocking_trx_id

阻塞事務的 ID

Blocking_lock_id

阻塞了另一事務的運行的事務的鎖的 ID

在資料庫中出現死鎖時,經常需要通過查詢innodb_trx、innodb_locks、innodb_lock_waits這三張表來找出在執行什么事務操作時導致了死鎖,例如執行如下SQL可以列出資料庫中所有事務的等待和鎖定記錄,

--本文作者:張永清, 轉載請注明: https://www.cnblogs.com/laoqing/p/16880718.html  
--來源于博客園 ,本文摘選自《軟體性能測驗分析與調優實踐之路》
SELECT
r.trx_isolation_level,/*事務隔離級別*/ r.trx_id AS waiting_trx_id,/*正處于等待中的事務id*/ r.trx_mysql_thread_id AS waiting_trx_thread, /*正處于等待中的資料庫執行緒id*/ r.trx_state AS waiting_trx_state, /*正處于等待中的事務的狀態*/ lr.lock_mode AS waiting_trx_lock_mode,/*正處于等待中的事務的鎖定模式*/ lr.lock_type AS waiting_trx_lock_type,/*正處于等待中的事務的鎖定型別*/ lr.lock_table AS waiting_trx_lock_table,/*正處于等待中的事務將鎖定的表*/ lr.lock_index AS waiting_trx_lock_index,/*正處于等待中的事務將鎖定的索引*/ r.trx_query AS waiting_trx_SQL,/*正處于等待中的事務將執行的SQL*/ b.trx_id AS blocking_trx_id,/*正處于鎖定中的事務id*/ b.trx_mysql_thread_id AS blocking_trx_thread,/*正處于鎖定中的執行緒id*/ b.trx_state AS blocking_trx_state,/*正處于鎖定中的事務的狀態*/ lb.lock_mode AS blocking_trx_lock_mode,/*正處于鎖定中的事務的鎖定模式*/ lb.lock_type AS blocking_trx_lock_type,/*正處于鎖定中的事務的鎖定型別*/ lb.lock_table AS blocking_trx_lock_table,/*正處于鎖定中的事務已經鎖定的表*/ lb.lock_index AS blocking_trx_lock_index,/*正處于鎖定中的事務已經鎖定的索引*/ b.trx_query AS blocking_sql /*正處于鎖定中的事務在執行的SQL*/ FROM information_schema.innodb_lock_waits wt INNER JOIN information_schema.innodb_trx b ON b.trx_id = wt.blocking_trx_id INNER JOIN information_schema.innodb_trx r ON r.trx_id = wt.requesting_trx_id INNER JOIN information_schema.innodb_locks lb ON lb.lock_trx_id = wt.blocking_trx_id INNER JOIN information_schema.innodb_locks lr ON lr.lock_trx_id = wt.requesting_trx_id;

1.3、MySQL中資料庫表的監控

  •  1、查看資料庫中當前打開了哪些表: show OPEN TABLES ,如圖所示,另外還可以通過show OPEN TABLES where In_use > 0過濾出當前已經被鎖定的表,

  •  2、查看資料庫中表的狀態:SHOW STATUS LIKE  '%table%',如圖所示,需要特別注意的是Table_locks_waited  指的是不能立即獲取表級鎖而需要等待的次數,如果等待的次數非常大則說明可能存在鎖爭搶的情況,如果是頻繁的出現鎖爭搶則對應用程式的并發性能影響很大,

 

  • 3、查看資料庫中鎖的資訊:SHOW STATUS LIKE '%lock%',如圖所示,

 

  • 4、查看資料庫中的表被掃描的情況:show global status like 'handler_read%',如圖所示,查詢的結果資料也可以用來評估資料庫中索引的使用情況,查詢的結果資料說明如表所示,

 

查詢結果項

描述

Handler_read_first

從索引中讀取第一項的次數,如果該值非常高,表明服務器正在執行大量的全索引掃描,該值一般不宜太高

Handler_read_key

基于鍵讀取資料行的請求數,該值如果越高則表明大量的查詢都走了索引,如果越低,表示索引的利用很低,該值一般越高越好

Handler_read_last

讀取索引中最后一個鍵的請求數

Handler_read_next

按鍵順序讀取下一行的請求數,如果查詢都走了索引,那么該值將不斷遞增

Handler_read_prev

按鍵順序讀取前一行的請求數(倒序讀取資料),一般用于評估執行ORDER BY … DESC的次數

Handler_read_rnd

基于固定位置讀取資料行的請求數,如果正在執行大量的需要對查詢結果進行排序的查詢,則此值很高,如果該值很高,則可能存在很多查詢需要做整表掃描或者查詢時一些表的關聯連接沒有正確使用主鍵或者索引

Handler_read_rnd_deleted

從資料庫資料檔案中讀取被洗掉記錄行的請求數

Handler_read_rnd_next

從資料庫資料檔案中讀取下一行的請求數,如果SQL陳述句執行大量表掃描,則此值很高,如果該值很高,一般說明表沒有正確添加索引或者SQL陳述句沒有走索引來查詢

1.4、性能測驗時MySQL中其他常用監控 

  • 1、查看每秒事務的提交數:show global status like 'com_commit',如圖所示

 

  • 2、查看每秒事務的回滾數:show global status like 'com_rollback',如圖所示

 

  •  3、查看執行緒的運行情況:show global status like 'threads_%',如圖所示,

查詢結果描述說明如表所示,

表查詢結果描述說明

查詢結果項

描述

Threads_cached

執行緒快取中的執行緒數

Threads_connected

已經建立連接的執行緒數

Threads_created

已經創建的執行緒數

Threads_running

正在運行中的執行緒數

  • 4、查看資料庫建立過的連接總數(包括連接中以及已經斷開的連接):show global status like 'Connections',如圖所示,

  •  5、查看innodb引擎快取命中情況:show global status like 'innodb_buffer_pool_read%',如圖所示,

  • 6、 查看join操作時全表掃描的次數:show global status like 'select_full_join',如圖所示,該值一般可以表示SQL陳述句中的join操作沒有走索引的次數,如果值非常大,那可能是SQL陳述句中的join操作存在性能問題,

  • 7、 查看SQL中排序使用情況:show global status like 'sort%',如圖所示

  • 8、 查看SQL查詢快取的命中情況:show global status like 'qcache%',如圖所示,

如果需要查詢資料庫查詢快取的設定,可以通過show variables like 'query_cache%'進行查看,如圖所示,

備注:MySQL資料庫中大部分的運行狀態都可以通過show status和show global status來查看,二者的區別在于前者是查詢當前的運行狀態,后者是查詢全域的運行狀態,也就是資料庫開始啟動運行到現在為止的狀態,

2、MySQL資料庫的性能定位

2.1、慢SQL

慢SQL 一般指查詢很慢的SQL陳述句,在MySQL資料庫中,可以通過慢查詢來查看所有執行超時的SQL陳述句,在默認情況下,一般慢SQL 是關閉的,可以通過執行show variables like 'slow_query%'來查看資料庫是否開啟了慢查詢,如圖所示,

從圖中看到slow_query_log的值為OFF表示未開啟,可以通過執行 set global slow_query_log=1; 或者 set global slow_query_log=ON;來臨時開啟慢查詢,如圖所示,

如果需要永久開啟,需要修改/etc/my.cnf組態檔,在[mysqld]處加入如下配置,然后重啟資料庫即可生效,如圖所示,

slow_query_log=ON

slow_query_log_file=/var/lib/mysql/localhost-slow.log

 

修改完成重啟資料庫后,再次執行show variables like 'slow_query%',發現慢查詢已經被開啟,如圖所示,

 

通過執行show variables like 'long_query%';可以查詢慢查詢的記錄時間,如圖所示,默認是10秒,可以通過執行set long_query_time=需要修改的時長;來修改慢查詢的記錄時間,

 

通過執行show status like 'slow_queries';可以查看慢查詢發生的次數,如圖所示,

從慢查詢日志中,我們也可以看到慢查詢發生的詳細資訊,如圖所示,慢查詢日志中會記錄每次慢查詢發生的時間、執行查詢時的資料庫用戶、執行緒id、查詢執行的SQL陳述句等資訊,

本文作者:張永清, 轉載請注明: https://www.cnblogs.com/laoqing/p/16880718.html  來源于博客園 ,本文摘選自《軟體性能測驗分析與調優實踐之路》

在獲取到慢查詢的SQL陳述句后,就可以借助資料庫的執行計劃來對慢查詢的SQL陳述句做進一步分析了,

 2.2、執行計劃

在MySQL中使用explain關鍵字可以模擬查看資料庫是如何來執行SQL查詢陳述句,也就是常說的查看一條SQL陳述句在資料庫中的執行計劃,如圖6-2-8所示就是執行EXPLAIN

本文作者:張永清, 轉載請注明: https://www.cnblogs.com/laoqing/p/16880718.html  來源于博客園 ,本文摘選自《軟體性能測驗分析與調優實踐之路》

SELECT * FROM  test.test 后回傳的SELECT * FROM  test.test查詢的執行計劃,

 

查詢結果回傳的欄位說明如表所示 

表查詢結果回傳的欄位說明

欄位

說明

id

查詢的順序編號,表示查詢中執行的順序,id的值越大執行的優先級越高,如果id相同,則從上往下執行

select_type

查詢型別,常見查詢型別如下:

SIMPLE:表示簡單查詢方式,SQL陳述句中一般不會不使用UNION和子查詢等

PRIMARY:表示當查詢中包含子查詢時,最外層的查詢陳述句則被標記為primary ,

UNION:查詢陳述句中如果在UNION關鍵字之后出現了第二個SELECT,則被標記為UNION,

UNION RESULT:表示查詢中有多個查詢結果集做UNION操作,

DEPENDENT UNION:表示子查詢中存在UNION操作時,從UNION之后的第二個及之后的SELECT陳述句都是DEPENDENT UNION,

DEPENDENT SUBQUERY:子查詢中UNION 中第一個SELECT查詢為DEPENDENT SUBQUERY,

SUBQUERY:子查詢內層查詢的第一個SELECT,

DERIVED:查詢陳述句中如果from子句的子查詢中出現了union關鍵字則外層select查詢將被標記為DERIVED,

MATERIALIZED:表示子查詢被物化,

UNCACHEABLE SUBQUERY:表示查詢結果集無法快取的子查詢,需要逐次查詢,

UNCACHEABLE UNION:表示子查詢不可被物化,需要逐次運行

Table

查詢涉及的表名或者表的別名

本文作者:張永清, 轉載請注明: https://www.cnblogs.com/laoqing/p/16880718.html  來源于博客園 ,本文摘選自《軟體性能測驗分析與調優實踐之路》

Type

表示表連接的型別,包括的型別如下所示,如下的這些型別的性能從高到低的順序是:null→system→const→eq-ref→ref→fulltext→ref_or_null→index_merge→unique_subquery→index_subquery→range→index→ALL

null:表示不訪問任何的表

system:表示表中只有一條記錄,相當于系統表,一般可以認為是const型別的特例,

const:表示主鍵或者唯一索引的常量查詢,表中最多只有1行記錄符合查詢要求,通常const使用到主鍵或者唯一索引進行定值查詢、常量查詢,查詢的速度非常快,

eq_ref:表示join 查詢程序中,關聯條件欄位走主鍵或者唯一索引,出來的行數不止一行,eq_ref是一種查詢性能很高的 join 操作,

ref:表示非聚集索引的常量查詢

fulltext:表示查詢的程序中,使用到了 fulltext 索引,

ref_or_null:跟ref查詢類似,在ref的查詢基礎上會多家一個null值的條件查詢

index merg:表示索引聯合查詢,

unique subquery:表示查詢走主鍵的子查詢

index subquery:表示查詢走非聚集索引的子查詢

range:表示查詢走索引范圍的查詢,一般包括:=、<>、>、>=、<、<=、IS NULL、BETWEEN、IN、<=> 等范圍,

index:表示通過索引做掃描查詢,

All:表示全表掃描,性能最差

possible_keys

查詢時預計可能會使用的索引,這里說的索引只是可能會用到,實際查詢不一定會用到,

Key

實際查詢時真實使用的索引

key_len

使用的索引長度

Ref

關聯資訊

Rows

查詢時掃描的資料記錄行數

Extra

表示查詢特性的使用情況,常用的查詢特性如下所示,

Using index:表示使用了索引

Using index conditio:表示使用了索引做過濾

Using MRR:表示使用了索引做內部排序

Using where:表示使用了where條件

Using temporary:表示使用了臨時表,

Using filesort:表示使用檔案排序,一般指無法利用索引來完成的排序

本文作者:張永清, 轉載請注明: https://www.cnblogs.com/laoqing/p/16880718.html  來源于博客園 ,本文摘選自《軟體性能測驗分析與調優實踐之路》

 

 

作者的原創文章,轉載須注明出處,原創文章歸作者所有,歡迎轉載,但是保留著作權,對于轉載了博主的原創文章,不標注出處的,作者將依法追究著作權,請尊重作者的成果,

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/531869.html

標籤:其他

上一篇:Mysql資料庫函式-函式的用法

下一篇:TDSQL-C 真·秒級啟停:連接斷了,又沒斷

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more