動態

@souyunku

MySQL優化:12種提升SQL執行效率的有效方法

在數據庫管理和優化的世界裏,MySQL作為一個流行的關係型數據庫管理系統,其性能優化是任何數據密集型應用成功的關鍵。優化MySQL數據庫不僅可以顯著提高SQL查詢的效率,還能確保數據的穩定性和可靠性。 本文,已收錄於,我的技術網站 ddkk.com,有大廠完整面經,工作技術,架構師成長之路,等經驗分享 在本文中,我將介紹12種提升SQL執行效率的有效方法,並通過實用的代碼示例來具體展示如何實施這些

souyunku 頭像

@souyunku

昵稱 架構師專欄

@grainy

查詢優化器無法做優化的情況

查詢優化器無法做優化的情況,又可以分為合理的和不合理的。 整理自《數據庫查詢優化器的藝術》,每個例子後面都有頁碼 合理的情況 常量+in+子查詢,且子查詢與上層的表沒有關係,沒有做上拉優化 select t1.* from t1 where 10 in (select t2.id from t2) 這種情況沒法做上拉優化。查詢計劃是對t2做一個順序掃描,結果作為t1表的filte

grainy 頭像

@grainy

昵稱 Grainy

@grainy

子查詢之ALL/ANY/SOME重寫思路

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 頭像

@grainy

昵稱 Grainy

@huaweichenai

MYSQL分區

一:概念 MySQL從5.1版本開始支持分區的功能。分區是指根據一定的規則,數據庫把一個表分解成多個更小的、更容易管理的部分。就訪問數據庫的應用而言,邏輯上只有一個表或一個索引,但是實際上這個表可能由數10個物理分區對象組成,每個分區都是一個獨立的對象,可以獨自處理,可以作為表的一部分進行處理。分區對應用來説是完全透明的,不影響應用的業務邏輯。 二:分區優點 性能提升: 分區可以提高查詢性能,

huaweichenai 頭像

@huaweichenai

昵稱 huaweichenai

@ahaohuliao

MySQL深分頁

前言 分頁是一個很普通的功能,只要是個後端開發就要寫分頁,那為什麼要分頁? 從業務上來講,即使系統返回所有數據,用户絕大多數情況下是不會看後面的數據的。 技術上,因為要考慮取數據的成本,目標服務器磁盤、內存、網絡帶寬,以及請求發起方自身是否能承受大批量數據。 MySQL 分頁語法 select * from table limit 0, 20 思考: 使用分頁,上面提到的第 2 點,這些

ahaohuliao 頭像

@ahaohuliao

昵稱 阿豪胡了

@mengxiang_592395ab95632

mysql優化指南之優化篇

二、優化 現在的理解數據庫優化有四個維度,分別是: 硬件升級、系統配置、表結構設計、SQL語句及索引。 那優化的成本和效果分別如下: 優化成本:硬件升級系統配置表結構設計SQL語句及索引。 優化效果:硬件升級由下圖可以看出性價比排名也是硬件升級 編輯 一般我們我們在項目中做事也是選擇性價比最高的項來開始做,下面也從這個順序講: (一)SQL語句及索引 根據當

mengxiang_592395ab95632 頭像

@mengxiang_592395ab95632

昵稱 縱情向前的強仔

@mengxiang_592395ab95632

mysql優化指南之原理篇

之前碰到一個線上問題,在接手一個同事的項目後,因為工期比較趕,我還沒來得及瞭解業務背景和大致實現,只是瞭解了上線發佈的順序和驗證方式就進行了上線,在上線進行金絲雀的時候系統還沒發生什麼異常,於是我們進行了全量發佈,全量完成後監控顯示有一個接口在間歇性的顯示耗時會比較長,然後我們在觀察是否影響面和判斷是否需要回滾中。另一方面在我們全量發佈後大約10分鐘後,其他一個業務線就進行了緊急告警,但是他們沒有

mengxiang_592395ab95632 頭像

@mengxiang_592395ab95632

昵稱 縱情向前的強仔

@vivo_tech

分佈式任務調度內的 MySQL 分頁查詢優化

作者:vivo 互聯網數據庫團隊-Qiu Xinbo 本文主要通過圖示介紹了用主鍵進行分片查詢的過程,介紹了主鍵分頁查詢存在SQL性能問題,如何去創建高效的索引去優化主鍵分頁查詢的SQL性能問題 對於數據分佈不均如何發現,提供了一些SQL查詢案例來進行參考,對MySQL Index Condition Pushdown優化算法做了一些簡單介紹。 一、背景介紹 最近在線上環境發現了一條執行較慢的分頁

vivo_tech 頭像

@vivo_tech

昵稱 vivo互聯網技術

@mouse_5b2ca6fc66c21

mysql 索引失效

不符合最左匹配 對索引列使用函數,表達式計算 索引列發生式轉化 where or 兩邊都沒索引的時候 注意:幻讀和不可重複讀的側重點是不同的,不可重複讀側重於數據修改,兩次讀取到的同一行數據不一樣;而幻讀側重於添加或刪除,兩次查詢返回的數據行數不同。

@renxingdebenma

MySQL常用指令碼

本文精心挑選了一系列MySQL指令碼,助你提升資料庫效率、解決常見問題,讓你的資料儲存體驗更加高效、可靠。 常用功能指令碼 1.匯出整個資料庫 mysqldump - u 使用者名稱- p – default - character - set = latin1 資料庫名匯出的檔名(資料庫預設編碼是latin1) mysqldump - u wcnc - p smgp_apps_wcnc

renxingdebenma 頭像

@renxingdebenma

昵稱 renxingdebenma

@finally_m

10個案例告訴你mysql不使用子查詢的原因

大家好,我是 V 哥,上週跟一個哥們吃飯,技術人在一起,你知道的,沒聊上一會兒,就轉到技術問題探討上了,其中聊到數據庫子查詢的問題印象深刻,回來整理了以下10個案例説明不使用子查詢的問題,分享給大家。 首先,來説一下在MySQL中,不推薦使用子查詢和JOIN的原因,主要有以下幾點: 性能問題:子查詢在執行時,MySQL需要創建臨時表來存儲內層查詢的結果,查詢完畢後再刪除這些臨時表,這會增加CP

finally_m 頭像

@finally_m

昵稱 威哥愛編程

@banxiazhimo

✨字節二面✨MySQL深分頁如何優化

大家好,我是半夏之沫 😁😁 一名金融科技領域的JAVA系統研發😊😊 我希望將自己工作和學習中的經驗以最樸實,最嚴謹的方式分享給大家,共同進步👉💓👈 👉👉👉👉👉👉👉👉💓寫作不易,期待大家的關注和點贊💓👈👈👈👈👈👈👈👈 👉👉👉👉👉👉👉👉💓關注微信公眾號【技術探界】 💓👈👈👈👈👈👈👈👈 前言

banxiazhimo 頭像

@banxiazhimo

昵稱 半夏之沫

@guangmingleiluodetouyingyi_bccdlf

mysqldump命令 logfile

使用 mysqldump 命令導出 MySQL 數據庫 在數據庫管理中,定期備份數據是不可或缺的一部分。mysqldump 是 MySQL 提供的一個工具,它可以用於導出數據庫的備份文件。本文將向你介紹如何使用 mysqldump 命令,並將備份日誌文件保存到指定位置。我們將通過簡單的步驟和代碼示例來幫助你理解這個過程。 整個流程 接下來,我們會展示整個流程,包括你需要完成的步驟和相關代碼。

guangmingleiluodetouyingyi_bccdlf 頭像

@guangmingleiluodetouyingyi_bccdlf

昵稱 光明磊落的投影儀

@dblens_com

MySQL索引最左原則:從原理到實戰的深度解析

MySQL索引最左原則:從原理到實戰的深度解析 一、什麼是索引最左原則? 索引最左原則是MySQL複合索引使用的核心規則,簡單來説: "當使用複合索引(多列索引)時,查詢條件必須從索引的最左列開始,且不能跳過中間的列,否則索引將無法完全生效" 為什麼會有這個原則? 這與B+樹索引的存儲結構密切相關: 複合索引按照定義時的列順序構建 數據先按第一列排序 第一列相同的情況下按第二列排序 依此

dblens_com 頭像

@dblens_com

昵稱 DBLens

@swiftcommunity

「MySQL 數據庫優化」降低存儲與查詢成本的最佳實踐

摘要 數據庫存儲和查詢成本高,特別是數據量大的企業面臨巨大的挑戰。本篇文章將探討索引優化、減少冗餘數據、冷熱存儲管理以及緩存(Redis、CDN)在優化數據庫訪問中的作用。通過實際示例,幫助企業優化數據庫性能,降低成本。 引言 現代應用程序依賴數據庫來存儲和查詢海量數據。然而,數據庫成本包括存儲成本、查詢成本、索引維護成本等,隨着數據增長,成本不斷攀升。因此,優化數據庫至關重要。 本文將介紹 My

swiftcommunity 頭像

@swiftcommunity

昵稱 Swift社區

@guangmingleiluodetouyingyi_bccdlf

MySQL權限詳解

在MySQL中,權限管理是保障數據安全和合理使用的重要手段。MySQL提供了豐富的權限控制機制,允許管理員對不同用户授予不同級別的操作權限。本文將會對MySQL中的權限管理,以及內核如何實現權限控制進行介紹。 一、權限級別 MySQL 的權限是分層的,權限可以授予不同級別的對象: 全局權限: 作用於整個 MySQL 服務器實例的所有數據庫,授予全局權限的用户可以對服務器上的任何數據庫和對象進

guangmingleiluodetouyingyi_bccdlf 頭像

@guangmingleiluodetouyingyi_bccdlf

昵稱 光明磊落的投影儀

@xiaoyi_ces

mysql運維問題解決:MySQL參數配置與部署環境優化

小亦平台會持續給大家科普一些運維過程中常見的問題解決案例,運維朋友們可以在往期文章中查看更多案例 問題概述 客户的工單系統出現訪問異常,客户反饋故障時間點為2023.11.08 9:21分、11點12分左右、16:06分左右 排查範圍: MySQL錯誤日誌 慢查詢日誌 配置參數 操作系統狀態(sar日誌,每10分鐘記錄) 問題分析 1. 日誌排

xiaoyi_ces 頭像

@xiaoyi_ces

昵稱 小亦智能運維

@vivo_tech

慢SQL優化實戰:從一例線上慢SQL探究執行引擎工作過程

作者: vivo 互聯網服務器團隊- Li Xin 本文通過一個線上慢SQL案例,介紹了Join的兩種算法和Order by的工作原理,並通過Explain和Optimizer_trace工具完整推演了慢SQL的執行過程。基於對原理和執行過程的分析,本文給出一種“引導執行引擎選擇效率更高的算法”的方案,從而使查詢性能得到大幅提升。 1、線上慢 SQL 背景 慢 SQL 會影響用户使用體驗,

vivo_tech 頭像

@vivo_tech

昵稱 vivo互聯網技術

@chenzhuodegan_czbzv7

MySQL慢查詢診斷與優化:EXPLAIN執行計劃全解析與索引優化實戰

在MySQL性能調優領域,慢查詢診斷與優化始終是DBA與開發人員的核心課題。本文以真實生產環境中的慢查詢案例為切入點,結合EXPLAIN執行計劃深度解析與索引優化實戰,構建一套可複用的性能優化方法論。 一、慢查詢識別與定位:從日誌到監控 MySQL默認開啓慢查詢日誌(slow_query_log),通過long_query_time參數設置閾值(如2秒)。生產環境建議結合log_queries_n

chenzhuodegan_czbzv7 頭像

@chenzhuodegan_czbzv7

昵稱 沉着的柑橘_cZbZv7

@god23bin

一文快速回顧 Servlet、Filter、Listener

什麼是Servlet? 前置知識: Web 服務器:可以指硬件上的,也可以指軟件上的。從硬件的角度來説, Web 服務器指的就是一台存儲了網絡服務軟件的計算機;從軟件的角度來説, Web 服務器指的是一種軟件,比如 Tomcat。 Servlet 容器:目前主流的 Servlet 容器軟件包括 Tomcat、Jetty、Jboss 等。 Web 服務器 ≠ Servlet 容器,Tomcat 是一

god23bin 頭像

@god23bin

昵稱 god23bin

@lenve

前綴索引,在性能和空間中尋找平衡

@[toc] 我們在項目的具體實踐中,有時候會遇到一些比較特殊的字段,例如身份證號碼。 鬆哥之前有一個小夥伴做黑龍江省的政務服務網,裏邊有一些涉及到用户身份證存儲的場景,由於存儲的數據大部分都是當地的,此時如果想給身份證號碼建立索引的話,小夥伴們知道,身份證前六位是地址碼,在這樣的場景下,給身份證字段建立索引的話,前六位的區分度是很低的,甚至前十位的區分度都很低(因為出生年份畢竟有限,一個省

lenve 頭像

@lenve

昵稱 江南一點雨

@jdcdevloper

玩轉服務器之Java Web篇:手把手教你搭建Java Web環境 | 京東雲技術團隊

前言 Java Web項目,簡單來説就是我們在瀏覽器上可以看到的內容。就簡單的Web來説,服務器上也同樣需要有計算機上所需要的運行環境,如:java,tomcat,mysql 。Java Web環境可以用來開發和部署各種Web應用程序,例如網站、Web服務、Web後台管理系統等。特點是跨平台、可靠性高、安全性強、開發效率高等。本篇文章會給你比較詳細的教程,從最基本的開始,循序漸進的深入。 一、Ja

jdcdevloper 頭像

@jdcdevloper

昵稱 京東雲開發者

@god23bin

在 IDEA 中創建 Java Web 項目的方式(詳細步驟教程)

開發環境 以下是我的開發環境 JDK 1.8 Maven 3.6.3 Tomcat 9.0 IDEA 2019(2019 無所畏懼,即使現在已經 2023 年了哈哈哈) 最原始的 Java Web 項目 下面的內容可能會因 IDEA 版本不同,而有些選項不同,但是大同小異。 1. 打開 IDEA 點擊 Create New Project 2. 點擊 Java Enterprise

god23bin 頭像

@god23bin

昵稱 god23bin

@invalidnull

關於 Java 和 node affinity 這個概念的聯繫

在Java開發領域,術語"node affinity"通常不是與Java語言本身直接相關的概念。然而,在某些特定的上下文中,可以將"node affinity"應用於Java應用程序的部署和調度方面。 在Java開發中,"node affinity"可能指的是以下幾個方面: 服務器親和性:在分佈式環境中部署Java應用程序時,可以考慮將特定的Java應用程序部署在特定的服務器節點上,以實現服務

invalidnull 頭像

@invalidnull

昵稱 註銷