MySQL ORDER BY RAND() 效率災難與優化方案實測
為什麼 ORDER BY RAND() 極慢? MySQL 為每行生成隨機數 → 臨時表 → 文件排序 15 萬行表查 5 行需 **8 秒+** 官方文檔明
MySQL INSERT ... ON DUPLICATE KEY UPDATE 多行批量寫入詳解
單行基礎語法 INSERT INTO tbl(a,b,c) VALUES(1,2,3) ON DUPLICATE KEY UPDATE c = c + 1;
MySQL 遠程連接配置:賬號權限、Host 通配符與 DNS 反解析優化
創建遠程訪問賬號(Navicat / 命令行) -- 關鍵:Host 設置為 % 允許任意 IP CREATE USER app_user@% IDENTIF
MySQL 批量插入三種方案性能實測:JDBC vs JdbcTemplate vs Hibernate
測試環境 10 萬條 User(id, username, password) Spring + Hibernate 4 + JdbcTemplate 事務邊
MySQL 字符串拼接:CONCAT 函數詳解與 NULL 陷阱
語法與基本用法 CONCAT(str1, str2, ...) -- 返回拼接後字符串 -- 任一參數為 NULL → 返回 NULL -- 全非二進制串 →
MySQL 字符集 GBK、GB2312、UTF8 區別與中文亂碼徹底解決
字符集族系關係 GB2312 (6763漢字) ⊂ GBK (21000+漢字+日韓) ⊂ GB18030 (國家標準,含少數民族字) UTF-8 (Unic
MySQL 優化全景指南:從硬件瓶頸到引擎選型與參數調優
四大硬件瓶頸基礎 瓶頸典型指標緩解方向 磁盤搜索IOPS、平均延遲 <10ms多盤分佈、SSD/NVMe、RAID IO 吞吐10-20 MB/s(機械
MySQL 觸發器實戰:庫存扣減與 BEFORE/AFTER 選型避坑
場景:下單扣減庫存 CREATE TABLE goods(id INT PRIMARY KEY, name VARCHAR(20), num INT); CR
MySQL 字符集深度圖解:GBK、UTF8、Latin1 轉換鏈路與亂碼根因
字符集轉換鏈路(客戶端 ↔ 服務端) 客戶端發送數據 │ ▼ character_set_client ──聲明:客戶端發送編碼
MySQL 複制中臨時表避坑指南:SQL_LOG_BIN 關鍵技巧
臨時表三大特性 會話級:斷開自動 DROP 引擎綁定:默認引擎決定存儲引擎,InnoDB 會膨脹 ibdata 寫 Binlog:默認記錄,從庫重放會創建同名
深入理解 MySQL LEFT JOIN:ON 與 WHERE 語義差異實戰
核心結論:ON 決定「怎麼關聯」,WHERE 決定「留哪些行」 LEFT JOIN 執行順序: 從左表讀取行 根據 ON 條件去右表匹配 右表無匹配 → 生成
MySQL 刪數據:DELETE 與 TRUNCATE 深度對比與選型
核心差異一覽 維度DELETETRUNCATE 語法類型DMLDDL 執行機制逐行刪除,記錄 Binlog(ROW 格式每行一條)釋放數據頁,重建表結構,最少
MySQL 導入導出神器 mysqldump 與 source 命令全攻略
mysqldump 導出篇 基礎語法 dump.sql # 密碼交互輸入,或 -ppassword(無空格,不安全) 核心參數速查 參數作用推薦場景 -
MySQL 存儲函數實現 Split 分割:計數、取值、存表完整版
前置設置 SET GLOBAL log_bin_trust_function_creators = 1; -- 允許創建函數 1. 計算分割總數 CR
MySQL 實現 Split 分割字符串函數:三種方案對比
方案一:臨時表返回集合(SQL Server 風格,MySQL 不直接支持) 原文給出的是 T-SQL 語法(RETURNS @t TABLE),MySQL 不
解決 MySQL "Too many connections" 1040 錯誤的多維方案
錯誤根因 默認 max_connections = 100,實際併發超過限制。常見誘因: MySQL 上限 長連接未釋放(未調用 close()) 慢查詢堆
CentOS 5.5 源碼編譯安裝 MySQL 5.5 全過程實錄
前置準備:卸載系統自帶舊版 yum remove mysql mysql-server mysql-libs 依賴工具鏈安裝 # CMake wget ht