MySQL原理
1、JDBC Connection實例是線程安全的嗎? Connection實例是線程安全的嗎? 能不能只創建一次,共享Connection對象? 答案是不能的, Connection不是線程安全的,他會在多線程環境下,導致數據庫操作的混亂,特別是在事務存在的情況下:可能一個線程剛開啓事務con.setAutoCommit(true),而另一個線程直接提交事務con.commit(); 對
昵称 journey
贡献者18
粉丝0
1、JDBC Connection實例是線程安全的嗎? Connection實例是線程安全的嗎? 能不能只創建一次,共享Connection對象? 答案是不能的, Connection不是線程安全的,他會在多線程環境下,導致數據庫操作的混亂,特別是在事務存在的情況下:可能一個線程剛開啓事務con.setAutoCommit(true),而另一個線程直接提交事務con.commit(); 對
昵称 journey
訪問方法的概念 設計MySQL的大叔把MySQL執行查詢語句的方式稱為訪問方法(access method)或者訪問類型。同一個查詢語句可以使用多種不同的訪問方法來執行,雖然最後的查詢結果都是一樣的,但是不同的執行方式話費的時間成本可能差距甚大。就像是從北京南鑼鼓巷到什剎海,你可以打車去,也可以坐地鐵去,坐公交去,還可以騎共享單車去,當然也可以走着去。 表結構 CREATE TABLE singl
昵称 Zeran
表結構 t1 CREATE TABLE `t1` ( `m1` int(11) DEFAULT NULL, `n1` char(1) COLLATE utf8mb4_bin DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; INSERT INTO `t1`(`m1`, `n1`) VALUE
昵称 Zeran
解決併發事務帶來問題的兩種基本方式 併發事務訪問相同記錄的情況可以劃分為3種。 讀 - 讀情況:併發事務相繼續讀取相同的記錄。讀取操作本身不會對記錄有任何影響,不會引起什麼問題,所以允許這種情況的發生。 寫 - 寫情況:併發事務相繼對相同的記錄進行改動。 讀 - 寫或寫 - 讀情況:也就是一個事務進行讀取操作,另一個事務進行改動操作。 寫 - 寫情況 在寫 - 寫情況下會發生髒寫的現象,
昵称 Zeran
tio-boot 使用 mybatis-plus 整合 tdengine 介紹如何使用 tio-boot 結合 Mybatis-Plus 對 TDengine 進行整合。TDengine 支持 SQL 語言,允許我們利用 Mybatis-Plus 的強大功能進行數據操作。tio-boot 是一個高效的 Java Web 框架,用於構建基於事件驅動的應用程序。 添加依賴 tio-boot: 用於
昵称 李通
在數據庫管理和優化的世界裏,MySQL作為一個流行的關係型數據庫管理系統,其性能優化是任何數據密集型應用成功的關鍵。優化MySQL數據庫不僅可以顯著提高SQL查詢的效率,還能確保數據的穩定性和可靠性。 本文,已收錄於,我的技術網站 ddkk.com,有大廠完整面經,工作技術,架構師成長之路,等經驗分享 在本文中,我將介紹12種提升SQL執行效率的有效方法,並通過實用的代碼示例來具體展示如何實施這些
昵称 架構師專欄
查詢優化器無法做優化的情況,又可以分為合理的和不合理的。 整理自《數據庫查詢優化器的藝術》,每個例子後面都有頁碼 合理的情況 常量+in+子查詢,且子查詢與上層的表沒有關係,沒有做上拉優化 select t1.* from t1 where 10 in (select t2.id from t2) 這種情況沒法做上拉優化。查詢計劃是對t2做一個順序掃描,結果作為t1表的filte
昵称 Grainy
SOME與ANY的含義相同,且 =ANY 或 =SOME 都等價於IN select emp_id from t1 where owner =ANY (select name from t2 where id=100); select emp_id from t1 where owner =SOME (select name from t2 where id=100); 上面都等
昵称 Grainy
一:概念 MySQL從5.1版本開始支持分區的功能。分區是指根據一定的規則,數據庫把一個表分解成多個更小的、更容易管理的部分。就訪問數據庫的應用而言,邏輯上只有一個表或一個索引,但是實際上這個表可能由數10個物理分區對象組成,每個分區都是一個獨立的對象,可以獨自處理,可以作為表的一部分進行處理。分區對應用來説是完全透明的,不影響應用的業務邏輯。 二:分區優點 性能提升: 分區可以提高查詢性能,
昵称 huaweichenai
前言 分頁是一個很普通的功能,只要是個後端開發就要寫分頁,那為什麼要分頁? 從業務上來講,即使系統返回所有數據,用户絕大多數情況下是不會看後面的數據的。 技術上,因為要考慮取數據的成本,目標服務器磁盤、內存、網絡帶寬,以及請求發起方自身是否能承受大批量數據。 MySQL 分頁語法 select * from table limit 0, 20 思考: 使用分頁,上面提到的第 2 點,這些
昵称 阿豪胡了
二、優化 現在的理解數據庫優化有四個維度,分別是: 硬件升級、系統配置、表結構設計、SQL語句及索引。 那優化的成本和效果分別如下: 優化成本:硬件升級系統配置表結構設計SQL語句及索引。 優化效果:硬件升級由下圖可以看出性價比排名也是硬件升級 編輯 一般我們我們在項目中做事也是選擇性價比最高的項來開始做,下面也從這個順序講: (一)SQL語句及索引 根據當
昵称 縱情向前的強仔
之前碰到一個線上問題,在接手一個同事的項目後,因為工期比較趕,我還沒來得及瞭解業務背景和大致實現,只是瞭解了上線發佈的順序和驗證方式就進行了上線,在上線進行金絲雀的時候系統還沒發生什麼異常,於是我們進行了全量發佈,全量完成後監控顯示有一個接口在間歇性的顯示耗時會比較長,然後我們在觀察是否影響面和判斷是否需要回滾中。另一方面在我們全量發佈後大約10分鐘後,其他一個業務線就進行了緊急告警,但是他們沒有
昵称 縱情向前的強仔
作者:vivo 互聯網數據庫團隊-Qiu Xinbo 本文主要通過圖示介紹了用主鍵進行分片查詢的過程,介紹了主鍵分頁查詢存在SQL性能問題,如何去創建高效的索引去優化主鍵分頁查詢的SQL性能問題 對於數據分佈不均如何發現,提供了一些SQL查詢案例來進行參考,對MySQL Index Condition Pushdown優化算法做了一些簡單介紹。 一、背景介紹 最近在線上環境發現了一條執行較慢的分頁
昵称 vivo互聯網技術
不符合最左匹配 對索引列使用函數,表達式計算 索引列發生式轉化 where or 兩邊都沒索引的時候 注意:幻讀和不可重複讀的側重點是不同的,不可重複讀側重於數據修改,兩次讀取到的同一行數據不一樣;而幻讀側重於添加或刪除,兩次查詢返回的數據行數不同。
昵称 mouse
本文精心挑選了一系列MySQL指令碼,助你提升資料庫效率、解決常見問題,讓你的資料儲存體驗更加高效、可靠。 常用功能指令碼 1.匯出整個資料庫 mysqldump - u 使用者名稱- p – default - character - set = latin1 資料庫名匯出的檔名(資料庫預設編碼是latin1) mysqldump - u wcnc - p smgp_apps_wcnc
昵称 renxingdebenma
大家好,我是 V 哥,上週跟一個哥們吃飯,技術人在一起,你知道的,沒聊上一會兒,就轉到技術問題探討上了,其中聊到數據庫子查詢的問題印象深刻,回來整理了以下10個案例説明不使用子查詢的問題,分享給大家。 首先,來説一下在MySQL中,不推薦使用子查詢和JOIN的原因,主要有以下幾點: 性能問題:子查詢在執行時,MySQL需要創建臨時表來存儲內層查詢的結果,查詢完畢後再刪除這些臨時表,這會增加CP
昵称 威哥愛編程
大家好,我是半夏之沫 😁😁 一名金融科技領域的JAVA系統研發😊😊 我希望將自己工作和學習中的經驗以最樸實,最嚴謹的方式分享給大家,共同進步👉💓👈 👉👉👉👉👉👉👉👉💓寫作不易,期待大家的關注和點贊💓👈👈👈👈👈👈👈👈 👉👉👉👉👉👉👉👉💓關注微信公眾號【技術探界】 💓👈👈👈👈👈👈👈👈 前言
昵称 半夏之沫
使用 mysqldump 命令導出 MySQL 數據庫 在數據庫管理中,定期備份數據是不可或缺的一部分。mysqldump 是 MySQL 提供的一個工具,它可以用於導出數據庫的備份文件。本文將向你介紹如何使用 mysqldump 命令,並將備份日誌文件保存到指定位置。我們將通過簡單的步驟和代碼示例來幫助你理解這個過程。 整個流程 接下來,我們會展示整個流程,包括你需要完成的步驟和相關代碼。
@guangmingleiluodetouyingyi_bccdlf
昵称 光明磊落的投影儀
MySQL索引最左原則:從原理到實戰的深度解析 一、什麼是索引最左原則? 索引最左原則是MySQL複合索引使用的核心規則,簡單來説: "當使用複合索引(多列索引)時,查詢條件必須從索引的最左列開始,且不能跳過中間的列,否則索引將無法完全生效" 為什麼會有這個原則? 這與B+樹索引的存儲結構密切相關: 複合索引按照定義時的列順序構建 數據先按第一列排序 第一列相同的情況下按第二列排序 依此
昵称 DBLens
摘要 數據庫存儲和查詢成本高,特別是數據量大的企業面臨巨大的挑戰。本篇文章將探討索引優化、減少冗餘數據、冷熱存儲管理以及緩存(Redis、CDN)在優化數據庫訪問中的作用。通過實際示例,幫助企業優化數據庫性能,降低成本。 引言 現代應用程序依賴數據庫來存儲和查詢海量數據。然而,數據庫成本包括存儲成本、查詢成本、索引維護成本等,隨着數據增長,成本不斷攀升。因此,優化數據庫至關重要。 本文將介紹 My
昵称 Swift社區
在MySQL中,權限管理是保障數據安全和合理使用的重要手段。MySQL提供了豐富的權限控制機制,允許管理員對不同用户授予不同級別的操作權限。本文將會對MySQL中的權限管理,以及內核如何實現權限控制進行介紹。 一、權限級別 MySQL 的權限是分層的,權限可以授予不同級別的對象: 全局權限: 作用於整個 MySQL 服務器實例的所有數據庫,授予全局權限的用户可以對服務器上的任何數據庫和對象進
@guangmingleiluodetouyingyi_bccdlf
昵称 光明磊落的投影儀
小亦平台會持續給大家科普一些運維過程中常見的問題解決案例,運維朋友們可以在往期文章中查看更多案例 問題概述 客户的工單系統出現訪問異常,客户反饋故障時間點為2023.11.08 9:21分、11點12分左右、16:06分左右 排查範圍: MySQL錯誤日誌 慢查詢日誌 配置參數 操作系統狀態(sar日誌,每10分鐘記錄) 問題分析 1. 日誌排
昵称 小亦智能運維
作者: vivo 互聯網服務器團隊- Li Xin 本文通過一個線上慢SQL案例,介紹了Join的兩種算法和Order by的工作原理,並通過Explain和Optimizer_trace工具完整推演了慢SQL的執行過程。基於對原理和執行過程的分析,本文給出一種“引導執行引擎選擇效率更高的算法”的方案,從而使查詢性能得到大幅提升。 1、線上慢 SQL 背景 慢 SQL 會影響用户使用體驗,
昵称 vivo互聯網技術
在MySQL性能調優領域,慢查詢診斷與優化始終是DBA與開發人員的核心課題。本文以真實生產環境中的慢查詢案例為切入點,結合EXPLAIN執行計劃深度解析與索引優化實戰,構建一套可複用的性能優化方法論。 一、慢查詢識別與定位:從日誌到監控 MySQL默認開啓慢查詢日誌(slow_query_log),通過long_query_time參數設置閾值(如2秒)。生產環境建議結合log_queries_n
昵称 沉着的柑橘_cZbZv7