MySQL 常用程序介紹

以下是一些常用的MySQL程序:

程序名作?
mysqldMySQL的守護進程即 MySQL 服務器,要使?MySQL 服務器 mysqld必須正在運?狀態
mysql
MySQL客?端程序,?于交互式輸? SQL 語句或以批處理模式從?件執?SQL的命令??具
mysqlcheck?于檢查、修復、分析和優化表的表維護客?端
mysqldump將 MySQL 數據庫轉儲到 SQL、?本或 XML ?件中的客?端
mysqlimport
將?本?件導?到表的客?端?具
mysqladmin
執?管理操作的客?端,例如創建或刪除數據庫、重新加載授權表、將表刷新到磁盤以及重新打開?志?件。mysqladmin還可以?于從服務器檢索版本、進程和狀態信息。
mysqlshow顯?數據庫、表、列和索引信息的客?端
mysqldumpslow
?于讀取和匯總慢速查詢?志內容的實?程序
mysqlbinlog
從?進制?志中讀取SQL語句的實?程序。mysqlbinlog ?件中包含的已執?SQL語句的?志,可?于從崩潰中恢復數據。
mysqlslap
客?端負載?具,模擬多個客?端同時訪問MySQL服務器,并報告每個階段的使?時間。

mysqld - MySQL 服務器

mysqld也被稱為MySQL服務器,是?個多線程程序,對數據?錄進?訪問管理(包含數據庫和
表)。數據?錄也是其他信息(如?志?件和狀態?件)的默認存儲位置。當 MySQL 服務器啟動時,會偵聽指定的端?、處理來?客?端程序的?絡連接,并管理不同客?端對數據庫的訪問.

mysql - MySQL 命令行客戶端

mysql是?個簡單的 SQL shell, 可以輸?命令和執?SQL語句,當執?SQL語句時,查詢結果以
ASCII 表格式顯?.在終端連接MySQL服務器可以使用如下指令:
# ?選項格式
mysql --user=user_name --password [db_name]
# 短選項格式
mysql -uuser_name -p [db_name]
# 終端回顯,輸?密碼
Enter password: your_password

mysql 客戶端選項

選項--?格式短格式說明
--host-h
--host= host_name , -h host_name
連接到指定主機上的 MySQL 服務
--port-P

--port=port_num , -Pport_num

TCP/IP 連接使?的端?號

--user
-u
--user= user_name , -u user_name
?于連接到MySQL 服務器的?戶名
--password
-p
--password[= password ] , -p[ password ]
?于連接到MySQL 服務器的密碼。可選,如果沒有給出, 會提??戶輸?
--defaults-file
--defaults-file= file_name
使?指定的選項?件。如果該?件不存在,則會發?錯誤。
--default-character-set
--default-character-set= charset_name
charset_name 將作為 客?端和當前連接的默認字符集,例: utf8mb4
--database
-D
--database= db_name , -D db_name
要使?的數據庫
--compress
-C
--compress , -C
如果可能,壓縮客?端和服務器之間傳輸的所有信息
--reconnect
--reconnect
如果客?端與服務器的連接丟失,?動嘗試重新連接
--quick
-q
--quick , -q
不緩存查詢結果,收到??打印??,如果輸出被掛起,可能會降低服務器速度
--protocol
--protocol={TCP|SOCKET|PIPE|MEMORY}
?于連接到服務器的傳輸協議, 默認為TCP
--delimiter
--delimiter= 要設置的 SQL語句分隔符
設置SQL語句分隔符。默認值為分號 ( ; )
--execute-e
--execute= statement , -e statement
執?指定的SQL語句并退出。
--version-V
--version , -V
顯?版本信息并退出。
--help-?
--help , -?
顯?幫助信息并退出。

在命令行中使用選項

命令?中指定選項遵循以下規則:
  • 選項應在程序名之后給出
  • 選項以單破折號" - "或雙破折號" -- "號開頭, - 表?短格式, -- 表??格式,例如:-?和 --help 都表?MySQL 程序顯?他的幫助消息
  • 選項名稱區分??寫。 -v -V 都是合法的,但含義不同,它們分別是 --verbose --version 選項的相應縮寫形式
  • 對于帶值的?格式選項,通常? = 符號分隔選項名稱和值。對于帶值的短選項,選項值可以緊跟在選項之后,也可以?空格隔開,例如: --host=127.0.0.1 -h127.0.0.1 -h 127.0.0.1 是等價的。 但是對于密碼選項的短格式,如果要指定密碼,選項與值之間不能有空格,如下所?:
mysql -ptest # test表?密碼,但沒有指定要訪問的數據庫
mysql -p test # test 表?指定了訪問的數據庫,但沒有指定密碼
  • 對于采?數值的選項,該值可以帶有后綴 K , M G 以指?乘數 1024、1024^2或 1024^3,例如,以下命令告訴 mysqladmin對服務器執? 1024 次 ping,每次 ping 之間休眠 3 秒
mysqladmin --count=1K --sleep=3 ping -uroot -p
  • 在命令?中包含空格的選項值必須?引號引起來。例如, --execute (or -e ) 選項與mysql?起使?時,表?將?個或多個 SQL 語句發送給服務器執?并顯?結果
mysql -u root -p -e "SELECT VERSION();SELECT NOW();"

選項(配置)文件

?多數 MySQL 程序都可以從選項?件(配置?件)中讀取啟動選項。可以在選項?件中指定常?選項,這樣就不?在每次運?程序時都在命令?中輸?它們。?部分選項?件都是純?本格式,可以使?任何?本編輯器創建。
使用?法
選項 --defaults-file 可以指定要使?的選項?件,客?端程序會讀取并應?選項?件中的相關配置
# Linux
mysql --defaults-file=/etc/mysql/my.cnf -uroot -p
# windows下
mysql "--defaults-file=C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" -uroot -p
選項?件位置及加載順序
MySQL 按以下表格中的順序查找并讀取選項?件,如果?件不存在則需要?動創建。讀取順序從上到下,后讀取的?件中配置的選項優先級越?。
  • 在 Windows 系統讀取選項?件
?件名說明
%WINDIR%\my.ini , %WINDIR%\my.cnf
全局,%WINDIR%是一個環境變量,它代表Windows操作系統的安裝目錄,通常等于C:\Windows
C:\my.ini , C:\my.cnf
全局
BASEDIR \my.ini , BASEDIR \my.cnf
全局,其中 BASEDIR指mysql的安裝路徑,這是最常用的配置文件
defaults-extra-file
如果存在其他選項?件可以通過 --defaults-extra-file 選項指定
%APPDATA%\MySQL\.mylogin.cnf
登錄路徑選項(僅限客?端),%APPDATA% 表?應?程序數據的?錄,如C:\Users\[用戶名]\AppData\Roaming
DATADIR \mysqld-auto.cnf
系統變量 (僅限服務器)
  • 在 Unix 和 Linux 系統上讀取的選項?件
?件名
說明
/etc/my.cnf
全局
/etc/mysql/my.cnf
全局
$MYSQL_HOME/my.cnf
服務器特定選項(僅限服務器),MYSQL_HOME 是設置的環境變量路徑
defaults-extra-file
如果存在其他選項?件可以通過 --defaults-extra-file 選項指定
~/.my.cnf
??特定選項,MYSQL_HOME 是設置的環境變量路徑
~/.mylogin.cnf
??特定的登錄路徑選項(僅限客?端)
DATADIR /mysqld-auto.cnf
系統變量 (僅限服務器),D ATADIR 代表MySQL數據?錄
選項?件中指定選項時,省略兩個前導破折號,并且每??表??個選項,例如: --quick --host=127.0.0.1 在選項?件中應表?成 quick 和 host=127.0.0.1
選項?件中的空?會被忽略。?空?可以采?以下任何形式:
? # comment ,?? ; comment
注釋?以 # ; 開,注釋可以從??的中間開始
? [ group ]
設置選項的程序或組的名稱,不區分??寫。如果選項組名稱與程序名稱相同,則組中的選項專?應?于該程序,例如, [mysqld] [mysql] 組分別適?于mysqld服務端程序和 mysql客?端程序
? [client] MySQL發?版中所有客?端程序都會讀取并應?這個組下的選項(除了mysqld),在這個組下可以指定適?于所有客?端程序的通?選項,例如配置??名和密碼(但要確保只有??才可以訪問這個?件以防?密碼泄漏)。
? opt_name
相當于命令?上的選項名
? opt_name = value
選項名對應的值,可以使?轉義序列 \b , \t , \n , \r , \\ \s 來表?退格符、制表符、換?符、回?符、反斜杠和空格字符
? 在選項?件中使? !include 指令來包含其他選項?件,例如: !include /home/mydir/myopt.cnf
案例:設置客?端全局編碼格式
  • 在Linux下編輯全局配置?件默認位置 /etc/mysql/my.cnf ,初始內容如下:
root@hcss-ecs-9734:/# vim etc/mysql/my.cnf# Copyright (c) 2015, 2024, Oracle and/or its affiliates.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2.0,
# as published by the Free Software Foundation.
# ... 省略
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
# 以下區域可以根據需要進?配置
  • 在已有內容下?輸?相應的配置,我們要為客?端設置全局的編碼格式為utf8mb4, 那么在[client] 節點下指定相應的選項即可
[client] # 所有客?端程序者會讀取這個節點下的配置信息
default-character-set=utf8mb4 # 指定編碼格式為utf8mb4

從.sql?件執? SQL 語句

使?source命令導?
有時候我們需要從.sql ?件執??些SQL語句,?如要把?個數據庫從?臺服務器A復制到另?臺服務器B上,那么可以先從服務器A導出數據到.sql?件,然后在服務器B執?這個.sql?件,我們可以?help命令查看命令列表,可以看到有?個source 命令如下所?:
mysql> help# ... 省略
source    (\.) Execute an SQL script file. Takes a file name as an argument.
# ... 省略
下?我們演??下source命令的使??法
  • 準備要執?的.sql?件,名為test_db.sql,內容如下:
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
DROP DATABASE IF EXISTS `test_db`;
CREATE DATABASE `test_db` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE `test_db`;
-- ----------------------------
-- Table structure for classes
-- ----------------------------
DROP TABLE IF EXISTS `classes`;
CREATE TABLE `classes` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL
DEFAULT NULL,`desc` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL
DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = 
utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of classes
-- ----------------------------
INSERT INTO `classes` VALUES (1, '計算機系2019級1班', '學習了計算機原理、C和Java語
?、數據結構和算法');
INSERT INTO `classes` VALUES (2, '中?系2019級3班', '學習了中國傳統?學');
INSERT INTO `classes` VALUES (3, '?動化2019級5班', '學習了機械?動化');
-- ----------------------------
-- Table structure for course
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL
DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = 
utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of course
-- ----------------------------
INSERT INTO `course` VALUES (1, 'Java');
INSERT INTO `course` VALUES (2, '中國傳統?化');
INSERT INTO `course` VALUES (3, '計算機原理');
INSERT INTO `course` VALUES (4, '語?');
INSERT INTO `course` VALUES (5, '?階數學');
INSERT INTO `course` VALUES (6, '英?');
-- ----------------------------
-- Table structure for score
-- ----------------------------
DROP TABLE IF EXISTS `score`;
CREATE TABLE `score` (`score` decimal(3, 1) NULL DEFAULT NULL,`student_id` int(11) NULL DEFAULT NULL,`course_id` int(11) NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci 
ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of score
-- ----------------------------
INSERT INTO `score` VALUES (70.5, 1, 1);
INSERT INTO `score` VALUES (98.5, 1, 3);
INSERT INTO `score` VALUES (33.0, 1, 5);
INSERT INTO `score` VALUES (98.0, 1, 6);
INSERT INTO `score` VALUES (60.0, 2, 1);
INSERT INTO `score` VALUES (59.5, 2, 5);
INSERT INTO `score` VALUES (33.0, 3, 1);
INSERT INTO `score` VALUES (68.0, 3, 3);
INSERT INTO `score` VALUES (99.0, 3, 5);
INSERT INTO `score` VALUES (67.0, 4, 1);
INSERT INTO `score` VALUES (23.0, 4, 3);
INSERT INTO `score` VALUES (56.0, 4, 5);
INSERT INTO `score` VALUES (72.0, 4, 6);
INSERT INTO `score` VALUES (81.0, 5, 1);
INSERT INTO `score` VALUES (37.0, 5, 5);
-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (`id` int(11) PRIMARY KEY AUTO_INCREMENT,`sn` int(11) NOT NULL COMMENT '學號',`name` varchar(20) NOT NULL COMMENT '姓名',`mail` varchar(20) COMMENT 'QQ郵箱'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci 
ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES (1, 50001, '張三', 'zs@bit.com');
INSERT INTO `student` VALUES (2, 50002, '李四', 'ls@bit.com');
INSERT INTO `student` VALUES (3, 50003, '王五', 'ww@bit.com');
INSERT INTO `student` VALUES (4, 50004, '趙六', 'zl@bit.com');
INSERT INTO `student` VALUES (5, 50005, '錢七', 'qq@bit.com');
SET FOREIGN_KEY_CHECKS = 1;
  • 確定.sql?件的絕對路徑:/home/lbk/test_db/database.sql
  • 連接數據庫查看已有數據庫

  • 使?source命令執?.sql?件的SQL語句
source /home/lbk/test_db/database.sql
  • 查看數據庫并查詢數據,驗證導?是否成功

使?mysql客?端導?

直接使?mysql客?端程序導?.sql?件并執?相應的SQL語句,可以使?以下命令

mysql db_name < text_file # 在指定的數據庫下執?SQL,前提是數據庫必須提前建?好
mysql < text_file # 不指定數據庫.sql中必須有USE [database_name],來指定要操作的數據庫

mysqlcheck - 表維護程序

mysqlcheck客?端?于執?表維護,可以對表進?:分析、檢查、優化或修復操作。
  • 分析的作?是查看表的關鍵字分布,能夠讓 sql ?成正確的執?計劃(?持 InnoDB,MyISAM,NDB)
  • 檢查的作?是檢查表的完整性以及數據庫表和索引是否損壞(?持 InnoDB,MyISAM, ARCHIVE,CSV)
  • 優化的作?是回收空間、減少碎?、提?I/O(?持 InnoDB,MyISAM,ARCHIVE)
  • 修復的作?是修復可能已經損壞的表(?持 MyISAM,ARCHIVE,CSV)
?般通過以下三種?法使?mysqlcheck
mysqlcheck [options] db_name [tbl_name ...]
mysqlcheck [options] --databases db_name ...
mysqlcheck [options] --all-databases
如果在 db_name 后沒有指定任何表名,或者使? --databases --all-databases 選項,那么整個數據庫都會被檢查。

mysqlcheck有如下常?選項,可以在命令?中指定,也可以在選項?件中通過 [mysqlcheck] 和 [client] 組進?指定
選項
說明
--analyze,-a
分析表
--auto-repair如果檢查的表有損壞,則?動修復它。所有表都檢查過之后才進?必要的修復
--check,-c
檢查表中的錯誤。mysqlcheck的默認操作
--check-only-changed,-C
僅檢查?上次檢查以來更改過的表
--databases,-B
--databases db_name 多個數據庫名?空格隔開,處理指定數據庫中的所有表
--force, -f
即使發?SQL錯誤也要繼續
--optimize,-o
優化表
--repair,-r執?可能進?的任務修復操作,除了唯?鍵
--skip-database
--skip-database= db_name
不需要執?檢查的數據庫名(區分??寫)
--tables
--tables= table_name 多個表名?空格隔開
在選項之后的所有名稱參數都被視為表名。
--use-frm
對于MyISAM表的修復操作

使用如下:

  • 分析test_db數據庫
mysqlcheck -a test_db

  • 檢查test_db數據庫
mysqlcheck -a test_db
  • 修復test_db數據庫
mysqlcheck -r test_db
我們可以知道,修復不支持InnoDB存儲引擎,如果要修復InnoDB存儲引擎的數據,我們需要把存儲引擎更換為MyIsam。

mysqldump - 數據庫備份程序

mysqldump客?端程序可以執?邏輯備份并?成?組SQL語句,其中包含原始數據庫和表的定義
以及表中的數據,以便實現對數據庫的簡單備份或復制。mysqldump命令可以?成CSV、或XML格式的?件。
mysqldump的?法通常有以下使?,可以轉儲?個或多個表或數據庫,如下所?:
mysqldump [options] db_name [tbl_name ...] > 備份文件的路徑
mysqldump [options] --databases db_name ... > 備份文件的路徑
mysqldump [options] --all-databases > 備份文件的路徑
如果在 db_name 后沒有指定任何表名,或者使? --databases --all-databases 選項,那么整個數據庫都會被轉儲。
mysqldump有如下常?選項,可以在命令?中指定,也可以在選項?件中通過 [mysqldump] 和[client] 組進?指定
選項
說明
--add-drop-database
在每個 CREATE DATABASE 語句之前添加 DROP DATABASE 語句
--add-drop-table
在每個 CREATE TABLE 語句之前添加 DROP TABLE 語句
--add-drop-trigger
在每個 CREATE TRIGGER 語句之前添加 DROP TRIGGER 語句
--add-locks
? LOCK TABLES UNLOCK TABLES 語句包裹每個表轉儲
--all-databases,-A
轉儲所有數據庫中的所有表
--databases,-B
--databases= db_name 多個數據庫名?空格隔開,將參數解釋為數據庫名稱并轉儲所有的表
--comments,-i
添加注釋到轉儲?件
--ignore-table
--ignore-table =db_name.table_name 多個表?空格隔開
不轉儲給定的表
--no-data,-d
不轉儲表內容
--triggers
轉儲每個表中的觸發器
--xml,-X
以XML格式輸出

使用案例

mysqldump test_db > /root/dump.sql

然后我們就會有/root/dump.sql文件,其中包含了test_dp數據庫中所有的表及其數據,之后我們就可以在mysql中通過 source 命令執行/root/dump.sql文件,從而實現復制了test_dp數據庫。

mysqladmin - MySQL 服務器管理程序

mysqladmin 是?個執?管理操作的客?端。可以?來檢查服務器的配置和當前狀態,以及創建和刪除數據庫等。
mysqladmin 可以使?以下語法:
mysqladmin [options] command [command-arg] [command [command-arg]] ...
語法中的command 表?命令,有些命令后?需要跟上?個參數,如下列出了mysqladmin 的常?命令:
選項
說明
version
顯?來?服務器的版本信息
create db_name
創建?個數據庫名為 db_name?
drop db_name刪除名為 db_name 的數據庫及其所有表
extended-status
顯?服務器狀態變量的值
password new_password
設置新密碼,password 后可以省略新密碼,mysqladmin會在之后提?輸?新密碼
processlist
顯?活動服務器線程的列表
kill id , id ,...
終?服務器線程。如果給出了多個線程ID值,則列表中不能有空格。
shutdown
停?服務器

mysqlshow - 顯?數據庫、表和列信息

mysqlshow 客?端可?于快速查看存在哪些數據庫、數據庫中的表以及表中的列或索引。mysqlshow 可以使?以下語法:

mysqlshow [options] [db_name [tbl_name [col_name]]]
  • db_name tbl_name col_name 可以使?通配符 * ?_
  • 如果沒有指定數據庫,則顯?所有數據庫名稱列表;如果沒有指定表,則顯?數據庫中所有匹配的表;如果沒有指定列,則顯?表中所有匹配的列和列類型。
  • 輸出僅顯?當前權限可以訪問的數據庫、表或列的名稱。

使用如下:

mysqlshow test_db;

mysqldumpslow - 總結慢查詢?志?件

在平時使?MySQL數據庫時,經常進?查詢操作,有些查詢語句執?的時間?常?,當執?時間超過設定的閾值時,我們稱這個查詢為慢查詢,慢查詢的相關信息通常需要??志記錄下來稱為慢查詢?志,mysqldumpslow可以解析慢查詢?志?件并匯總其內容。

例如,我們可以使用mysqladmin查看當前有多少條慢查詢

mysqladmin status

我們可以看到當前一共有三條慢查詢,我們在mysql中可以用如下命令查看有關慢查詢的各種信息,例如設定的執行時間閾值,慢查詢日志文件是否開啟,及慢查詢日志文件的位置。

show variables like '%query%';

通常情況下,mysqldumpslow 會將相似的查詢分組并顯?摘要輸出,?般會把數字和字符串? N
"S" 代替,要想顯?真實的值可以使? -a 和 -n 選項。
mysqldumpslow 可以使?以下語法
mysqldumpslow [options] [log_file ...]
由于通過 show variables like '%query%'; 命令我們已經知道慢查詢日志文件在 /var/lib/mysql/hcss-ecs-9734-slow.log ,但是我們可以看到 slow_query_log 是關閉的,所以我們需要在配置文件 /etc/mysql/my.cnf 中添加如下配置,使用如下命令
[mysqld]
slow_query_log = 1

之后我們就可以使用如下命令查看慢查詢日志文件里的內容

mysqldumpslow /var/lib/mysql/hcss-ecs-9734-slow.log

mysqldumpslow 的常?選項

選項
說明
-a
不? N 'S' 代替numbers和String
-n N
在名稱中包含N個以上的數字? N 代替
-g pattern
僅考慮與指定模式匹配的慢查詢
-h host_name
與*-slow.log?件名對應的MySQL服務器主機名,可以包含通配符。默認值是*(匹配所有)。
-i name
服務器實例的名稱
-l
不要從總時間中減去鎖占?的時間
-r倒序順列
-s sort_type
如何對輸出進?排序
-t N
顯?輸出中的前N個查詢
-s sort_type sort_type可選的值如下所?:
  • t , at : 按查詢時間或平均查詢時間排序,默認排序
  • l , al : 按鎖占?時間或平均鎖占?時間排序
  • r , ar : 按發送的?數或平均發送的?數排序
  • c : 按計數排序

mysqlbinlog - 處理?進制?志?件

我們平時對數據庫的修改,包括對數據的增刪改,都會被描述成?個"事件",每個"事件"都會以?進制形式記錄在?個?件?,這個?件就是服務器的?進制?志?件,稱為Binary Log或binlog。
mysqlbinlog 能夠以?本格式顯??進制?志?件中的內容。
binlog的默認保存路徑是數據?錄:
  • Linux下默認?錄:/var/lib/mysql
  • Windows下默認?錄:MySQL程序的安裝路徑\Data
binlog是以 .00000n 結尾命名的?件,n不斷遞增
mysqlbinlog 可以使?以下語法
mysqlbinlog [options] log_file ...
例如要顯?名為 binlog.000011? ?進制?志?件的內容,可以使?以下命令:
mysqlbinlog binlog.000011
mysqlbinlog 有如下常?選項,可以在命令?中指定,也可以在選項?件中通過 [mysqlbinlog] 和 [client] 組進?指定
選項說明
--offset, -o
--offset= N -o N
跳過?志中的前N條記錄
--result-file, -r
--result-file= name , -r name
輸出的?標?件
--server-id
僅顯?指定服務器ID創建的事件

mysqlslap - 負載仿真客?端

mysqlslap是?個診斷程序,?于模擬MySQL服務器的客?端負載,并報告每個階段的時間,就好?多個客?端正在訪問服務器?樣。
mysqlslap可以使?以下語法
mysqlslap [options]
  • 可以通過 --create --query 選項,指定包含SQL語句的字符串或包含SQL語句的?件
  • 如果指定?個包含SQL語句的?件,默認情況下每?必須包含?條語句(也就是說,隱式語句分隔符是換?符)
  • 如果要把?條語句分為多?書寫,可以使? --delimiter 選項指定不同的分隔符
  • 不能在?件中包含注釋,因為mysqlslap不能解析注釋。
mysqlslap運?分為三個階段:
a. 創建測試數據階段:創建?于測試的庫、表或數據,這個階段使?單個客?端連接
b. 運?負載測試階段,這個階段可以使?許多客?端連接
c. 清理階段:執?刪除表,斷開連接等操作,這個階段使?單個客?端連接
mysqlslap 有如下常?選項,可以在命令?中指定,也可以在選項?件中通過 [mysqlslap]
[client] 組進?指定
選項說明
--create

--create=value

其中value等于創建的SQL語句或.sql文件

--query -q

--query=value

其中value等于創建的SQL語句或.sql文件

--concurrency, -c
--concurrency= N , -c N
要模擬并?客?端的數量
--no-drop
運?完測試后不刪除創建的數據庫
--iterations -i
--iterations= N , -i N
每個客?端運?測試的次數
--auto-generate-sql-add-
autoincremen
在?動?成的表中添加 AUTO_INCREMENT
--auto-generate-sql-
write-number
--auto-generate-sql-write-number= N
要執?多少?插?,默認值是100
案例
  • 提供?定義的創建和查詢語句,創建50個客?端連接,每個客?端進?200次 select 查詢(在??內輸?命令)。
mysqlslap --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23);" --query="SELECT * FROM a" --concurrency=50 --iterations=200
  • 從指定的?件中加載創建、插?和查詢SQL語句。SQL?件中的語句以 ";" 分隔。使?5個客?端,每個客?端查詢5次。
mysqlslap --concurrency=5 --iterations=5 --query=query.sql --create=create.sql --delimiter=";

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/64063.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/64063.shtml
英文地址,請注明出處:http://en.pswp.cn/web/64063.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis篇--常見問題篇4--大Key(Big Key,什么是大Key,影響及使用建議)

1、概述 大Key&#xff1a;通常是指值&#xff08;Value&#xff09;的長度非常大&#xff0c;實際上鍵&#xff08;Key&#xff09;長度很大也算。通常來說&#xff0c;鍵本身不會很長&#xff0c;占用的內存較少&#xff0c;因此判斷一個鍵是否為bigKey主要看它對應的值的大…

云手機+YouTube:改變通信世界的劃時代技術

隨著科技的不斷進步&#xff0c;手機作為人們生活中不可或缺的工具&#xff0c;也在不斷地更新換代。近年來&#xff0c;一個名為“油管云手機”的全新產品正在引起廣泛的關注和討論。作為一個運用最新科技實現的新型手機&#xff0c;它在通信領域帶來了全新的體驗和革命性的變…

ModbusTCP從站轉Profinet主站案例

一. 案例背景 在復雜的工業自動化場景中&#xff0c;企業常常會采用不同品牌的設備來構建生產系統。西門子SINAMICS G120變頻器以其高性能、高精度的速度和轉矩控制功能&#xff0c;在電機驅動領域應用廣泛。施耐德M580可編程邏輯控制器則以強大的邏輯控制和數據處理能力著稱&…

JS 函數的定義與調用

文章目錄 1. 普通函數-無形參2. 普通函數-有形參3. 普通函數-參數默認值4. 普通函數-返回值5. 立即執行函數6. 匿名函數7. 箭頭函數8. 函數提升 1. 普通函數-無形參 函數定義時沒有指定形參, 調用時仍然可以向其傳遞參數, 通過默認參數 arguments 獲取, arguments 是一個偽數組…

MySQL的索引失效的原因有那些

1. 數據類型不匹配 詳細說明&#xff1a;MySQL在比較不同數據類型的值時&#xff0c;可能會嘗試進行隱式轉換。如果這種轉換導致了復雜度增加或無法直接利用索引&#xff0c;則會導致索引失效。 實例與解決方案&#xff1a; -- 錯誤示例&#xff1a;數據類型不匹配 select *…

邁向未來:.NET技術的持續創新與發展前景

隨著信息技術的飛速發展&#xff0c;編程語言和開發框架不斷涌現&#xff0c;許多技術平臺以其獨特的優勢贏得了開發者的青睞。在這場技術的競爭中&#xff0c;.NET平臺憑借其卓越的性能、廣泛的生態系統以及持續創新的精神&#xff0c;成為了全球開發者的重要選擇。本文將探討…

微信小程序-基于Vant Weapp UI 組件庫的Area 省市區選擇

Area 省市區選擇&#xff0c;省市區選擇組件通常與 彈出層 組件配合使用。 areaList 格式 areaList 為對象結構&#xff0c;包含 province_list、city_list、county_list 三個 key。 每項以地區碼作為 key&#xff0c;省市區名字作為 value。地區碼為 6 位數字&#xff0c;前兩…

Canvas指定三角形內部生成隨機點

使用重心坐標&#xff08;barycentric coordinates&#xff09;或者通過面積比例的方法來確定點是否在三角形內。不過&#xff0c;對于簡單的應用&#xff0c;一種常見的方法是使用隨機點并檢查它們是否在三角形內部。如果不在&#xff0c;就重新生成&#xff0c;直到得到足夠數…

智駕感知「大破局」!新一輪混戰開啟

隨著智能駕駛搭載率的攀升&#xff0c;艙外傳感器賽道迎來新變局。 一方面&#xff0c;從近幾年智駕傳感器的配置變化來看&#xff0c;攝像頭的主導地位顯而易見。 12月10-12日&#xff0c;由德賽西威總冠名的2024&#xff08;第八屆&#xff09;高工智能汽車年會暨年度金球獎…

深入解析Android Recovery系統

深入解析Android Recovery系統 引言 在Android系統中,Recovery模式是一個非常重要的組成部分。它主要用于系統的恢復、更新和修復。當用戶遇到系統問題時,Recovery模式可以提供一種安全的方式來恢復系統到正常狀態。本文將深入探討Android Recovery系統的實現原理,重點分析…

Kibana8.17.0在mac上的安裝

1、Kibana是什么 Kibana是與elasticsearch配套使用的數據分析與可視化工具&#xff0c;通過Kibana可以輕松與es中存儲的數據進行高效的交互&#xff0c;包括數據寫入、檢索、刪除等操作&#xff0c;并可以通過編寫部分代碼將數據做成各種報表&#xff0c;從而進行非常直觀的統…

數字IC后端設計實現十大精華主題分享

今天小編給大家分享下吾愛IC社區星球上周十大后端精華主題。 Q1:星主&#xff0c;請教個問題&#xff0c;長tree的時候發現這個scan的tree 的skew差不多400p&#xff0c;我高亮了整個tree的schematic&#xff0c;我在想是不是我在這一系列mux前邊打斷&#xff0c;設置ignore p…

給bmp和png,設置BLENDFUNCTION的AlphaFormat不同參數的效果

BLENDFUNCTION是AlphaBlend用控制透明效果的重要參數。 選擇一個32位的png圖片&#xff0c;設置AlphaFormat 為 AC_SRC_ALPHA&#xff0c;效果如上圖。 選擇一個32位的png圖片&#xff0c;設置AlphaFormat 為 0&#xff0c;效果如上圖。 選擇一個24位的bmp圖片&#xff0c;設置…

ChildLife“童年時光杯”足球聯賽啟動 共促青少年健康成長

2024年12月21日至22日&#xff0c;由美國知名嬰幼兒營養品牌ChildLife童年時光贊助的“童年時光杯”青少年足球聯賽將在上海拉開帷幕。本次賽事U7/U8組別共有16支足球隊參賽&#xff0c;包括上海幸運星足球俱樂部旗下的明星球隊&#xff0c;以及其他青少年俱樂部的優秀隊伍&…

面向對象的基本原則【學習、記錄】

1、單一職責原則定義 一個對象應該只包含單一的職責&#xff0c;并且該職責被完整地封裝在一個類中。就一個類而言&#xff0c;應該僅有一個引起它變化的原因。 2、開閉原則定義 一個軟件實體應當對擴展開放&#xff0c;對修改關閉。 3、里氏代換原則定義 如果對每一個類型為S的…

什么是根服務器?有什么作用?

你知道什么是根服務器嗎?在互聯網的龐大架構中&#xff0c;根服務器很多人對它的了解并不深入。那么&#xff0c;根服務器到底是什么&#xff0c;它有什么作用呢? 什么是根服務器? 根服務器是互聯網域名系統(DNS)的一部分&#xff0c;負責管理和維護最頂層的域名信息。簡單…

MTK--mt7921 usb wifi debug

文章目錄 1、代碼編譯2、配置文件修改3、Wifi設置命令4、Wifi debug 淘寶隨便買個7921的usb wifi。 1、代碼編譯 export TEMPLATECONF${PWD}/meta/meta-mediatek-mt8518/conf/base/aud8518sp2-slc-32b-7921-c4a-user source meta/poky/oe-init-build-env bitbake mtk-image-au…

日志層次結構及logger.propagate的作用

一、Python logging 模塊的層次結構 Python 的 logging 模塊提供了一個靈活的日志系統&#xff0c;適用于各種規模的應用程序。其核心設計基于層次化的命名系統&#xff0c;使得日志記錄可以按照組織結構進行管理和配置。 1. Logger&#xff08;日志器&#xff09; 定義&…

如何配置OSB連接數據連接/讀取超時

1.Oracle DB OSB中的DBAdapter的查詢超時參數配置沒用&#xff0c;要解決接口超時問題&#xff0c;需要在console中的數據源配置超時參數&#xff1a; oracle.net.CONNECT_TIMEOUT30000 oracle.net.READ_TIMEOUT30000 添加圖片注釋&#xff0c;不超過 140 字&#xff08;可選…

一起學Git【第六節:查看版本差異】

git diff是 Git 版本控制系統中用于展示差異的強大工具。他可以用于查看文件在工作區、暫存區和版本庫之間的差異、任意兩個指定版本之間的差異和兩個分支之間的差異等,接下來進行詳細的介紹。 1.顯示工作區與暫存區之間的差異 # 顯示工作區和暫存區之間的差異,后面不加參數…