MySQL存儲(chǔ)過(guò)程的創(chuàng)建和使用示例詳解
一、存儲(chǔ)過(guò)程
1.1 存儲(chǔ)過(guò)程介紹
存儲(chǔ)過(guò)程:
將能夠完成特定功能的SQL指令進(jìn)行封裝(SQL指令集),編譯之后存儲(chǔ)在數(shù)據(jù)庫(kù)服務(wù)器上,并為其命名,客戶端可以通過(guò)直接調(diào)用SQL指令集,獲取執(zhí)行結(jié)果
存儲(chǔ)過(guò)程解決的問(wèn)題:
- 如果有需要多次執(zhí)行的SQL,每次執(zhí)行都需要通過(guò)連接傳遞到MySQL服務(wù)器,并且需要經(jīng)過(guò)編譯和執(zhí)行后,再返回執(zhí)行結(jié)果。重復(fù)且浪費(fèi)資源
- 如果需要連續(xù)執(zhí)行多個(gè)SQL指令,并且第二個(gè)SQL指令需要使用第一個(gè)SQL執(zhí)行的結(jié)果集作為參數(shù)。
存儲(chǔ)過(guò)程優(yōu)點(diǎn):
- SQL指令無(wú)需客戶端編寫(xiě)、通過(guò)網(wǎng)絡(luò)傳輸,可以節(jié)省網(wǎng)絡(luò)開(kāi)銷,同時(shí)避免SQL指令在傳輸過(guò)程中被惡意篡改,保證安全性;
- 存儲(chǔ)過(guò)程經(jīng)過(guò)編譯創(chuàng)建并保存在數(shù)據(jù)庫(kù)服務(wù)器中,執(zhí)行過(guò)程無(wú)需編譯,對(duì)SQL指令的執(zhí)行過(guò)程提升了性能;
- 存儲(chǔ)過(guò)程中多個(gè)SQL指令之間存在邏輯關(guān)系,支持流程控制語(yǔ)句(分支、循環(huán)),可以實(shí)現(xiàn)更為復(fù)雜的業(yè)務(wù)邏輯處理;
存儲(chǔ)過(guò)程的缺點(diǎn):
- 存儲(chǔ)過(guò)程是根據(jù)不同數(shù)據(jù)庫(kù)引擎進(jìn)行編譯、創(chuàng)建并存儲(chǔ)在數(shù)據(jù)庫(kù)中。如果需要不同類型數(shù)據(jù)庫(kù)遷移,需要對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程進(jìn)行重新編寫(xiě)。
- 存儲(chǔ)過(guò)程受限與數(shù)據(jù)庫(kù)產(chǎn)品,如果需要高性能的優(yōu)化會(huì)成為一個(gè)問(wèn)題;
- 在互聯(lián)網(wǎng)項(xiàng)目中,如果需要數(shù)據(jù)庫(kù)高并發(fā)(連接)訪問(wèn),存儲(chǔ)過(guò)程會(huì)增加數(shù)據(jù)庫(kù)的連接執(zhí)行時(shí)間。因?yàn)槲覀儗?fù)雜的業(yè)務(wù)交給了數(shù)據(jù)庫(kù)進(jìn)行處理。
1.2 存儲(chǔ)過(guò)程的創(chuàng)建與刪除
1.2.1 創(chuàng)建存儲(chǔ)過(guò)程
將能夠完成特定功能的SQL指令進(jìn)行封裝
語(yǔ)法
CREATE PROCEDURE <proc_name>([IN/OUT args]) BEGIN -- SQL END;
示例
-- 創(chuàng)建存儲(chǔ)過(guò)程,實(shí)現(xiàn)加法運(yùn)算 -- 存儲(chǔ)過(guò)程是有出入?yún)?shù)和輸出參數(shù)的 CREATE PROCEDURE proc_test1(IN a INT,IN b INT,OUT c INT) BEGIN SET c = a+b; END;
1.2.2 刪除存儲(chǔ)過(guò)程
-- 刪除存儲(chǔ)過(guò)程 DROP PROCEDURE proc_test1;
1.3存儲(chǔ)過(guò)程的調(diào)用
-- 定義變量 SET @m = 0; -- 調(diào)用存儲(chǔ)過(guò)程 CALL proc_test1(3,2,@m); -- 顯示變量值 SELECT @m from DUAL;
1.4 存儲(chǔ)過(guò)程中的變量使用
存儲(chǔ)過(guò)程中的變量分為兩種:局部變量和用戶變量
1.4.1 局部變量
局部變量:定義在存儲(chǔ)過(guò)程中的變量,只能在存儲(chǔ)過(guò)程內(nèi)部使用
-- 局部變量需要定義在存儲(chǔ)過(guò)程中,而且必須定義在存儲(chǔ)過(guò)程開(kāi)始 declare <attr_name> <type> [default value]; -- 創(chuàng)建存儲(chǔ)過(guò)程:計(jì)算輸入?yún)?shù)的平方與輸入?yún)?shù)/2 之和 CREATE PROCEDURE proc_test2(IN a INT,OUT r INT) BEGIN DECLARE x INT DEFAULT 0; -- 局部變量定義 DECLARE y INT DEFAULT 0; -- 局部變量定義 set x = a*a; set y = a/2; SET r = x + y ; END
1.4.2 用戶變量
用戶變量:相當(dāng)于全局變量,定義的用戶變量,可以通過(guò)
select @attrName from dual
進(jìn)行查詢;
-- 用戶變量會(huì)存儲(chǔ)在mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)字典中(dual) -- 用戶變量定義使用set關(guān)鍵字直接定義,變量名要以@開(kāi)頭 SET @a = 0; -- 定義用戶變量 SELECT @a from DUAL;-- 查詢用戶變量
1.4.3 將查詢結(jié)果賦值給變量
在存儲(chǔ)過(guò)程中,使用
select ... into
給變量賦值
-- 創(chuàng)建存儲(chǔ)過(guò)程,查詢學(xué)生表中的學(xué)生數(shù)量,賦值給參數(shù)s CREATE PROCEDURE proc_test3(OUT s INT) BEGIN SELECT COUNT(stu_num) INTO s from students;-- 將查詢到的學(xué)生數(shù)量,賦值給參數(shù)s END; -- 調(diào)用存儲(chǔ)過(guò)程test3 SET @s=0; CALL proc_test3(@s); select @s from DUAL;
注意
用戶變量相當(dāng)于全局變量,可以在SQL質(zhì)量以及多個(gè)存儲(chǔ)過(guò)程中共享,因此在開(kāi)發(fā)中建議盡量減少使用用戶變量,防止用戶變量過(guò)多導(dǎo)致程序不易理解、難以維護(hù);
1.5存儲(chǔ)過(guò)程的參數(shù)
MySQL存儲(chǔ)過(guò)程的參數(shù)一共有三種:IN 、OUT、INOUT
1.5.1 輸入?yún)?shù) IN
輸入?yún)?shù)–在調(diào)用存儲(chǔ)過(guò)程中傳遞給存儲(chǔ)過(guò)程的參數(shù)(在調(diào)用的過(guò)程必須為具有實(shí)際變量的 或者 字面值)
-- 創(chuàng)建存儲(chǔ)過(guò)程:添加學(xué)生信息 CREATE PROCEDURE proc_test4 (IN snum CHAR(8),IN sname VARCHAR(20),IN denger CHAR(2),IN age INT,IN tel VARCHAR(20),IN cid INT) BEGIN INSERT INTO students(stu_num,stu_name,stu_denger,stu_age,stu_tel,cid) VALUES(snum,sname,denger,age,tel,cid); END; -- 調(diào)用存儲(chǔ)過(guò)程 CALL proc_test4('8','張飛','男',88,'13667565656',2);
1.5.2 輸出參數(shù) OUT
將存儲(chǔ)過(guò)程中產(chǎn)生的數(shù)據(jù),返回給過(guò)程調(diào)用者,相當(dāng)于Java的返回值,但不同的是,存儲(chǔ)過(guò)程可以有多個(gè)輸出參數(shù)。
-- 創(chuàng)建存儲(chǔ)過(guò)程:根據(jù)學(xué)號(hào),查詢學(xué)生姓名 CREATE PROCEDURE proc_test5(IN snum INT,OUT sname VARCHAR(20)) BEGIN SELECT stu_name INTO sname from students where stu_num = snum; END; -- 設(shè)置用戶參數(shù) SET @name = ''; -- 調(diào)用存儲(chǔ)過(guò)程 CALL proc_test5(8,@name); select @name from DUAL;
1.5.3 輸入輸出參數(shù) INOUT
-- 存儲(chǔ)過(guò)程:根據(jù)學(xué)號(hào),查詢學(xué)生姓名,使用INOUT CREATE PROCEDURE proc_test6(INOUT str VARCHAR(20)) BEGIN SELECT stu_name INTO str from students where stu_num = str; END; -- 設(shè)置參數(shù),默認(rèn)賦值為查詢參數(shù)值 set @str = '8'; -- 調(diào)用存儲(chǔ)過(guò)程 CALL proc_test6(@str); SELECT @str from dual;
1.6 存儲(chǔ)過(guò)程中的流程控制
在存儲(chǔ)過(guò)程中,支持流程控制語(yǔ)句用于實(shí)現(xiàn)邏輯的控制
1.6.1 分支語(yǔ)句
if-then-else
單分支:
– 單分支:如果條件成立,則執(zhí)行SQL
CREATE PROCEDURE test7(IN a INT)
BEGIN
IF CONDITION THEN
– SQL
END IF;
END;
雙分支
– 雙分支:如果條件成立,則執(zhí)行SQL1;否則,執(zhí)行SQL2
CREATE PROCEDURE test7(IN a INT)
BEGIN
IF CONDITION THEN
– SQL1
ELSE
– SQL2
END IF;
END;
case
– CASE
CREATE PROCEDURE proc_test8(IN a INT)
BEGIN
CASE a
WHEN 1 THEN – 參數(shù)a = 1 時(shí),執(zhí)行SQL1
– SQL1
WHEN 2 THEN – 參數(shù)a = 2 時(shí),執(zhí)行SQL2
– SQL2
ELSE
– SQL3 – 如果變量值和所有的when值都不匹配,則執(zhí)行SQL3
END CASE;
END;
1.6.2 循環(huán)語(yǔ)句
while
– 創(chuàng)建存儲(chǔ)過(guò)程:添加參數(shù),按照參數(shù)值,創(chuàng)建班級(jí)信息,即參與為3,就創(chuàng)建3條班級(jí)信息
CREATE PROCEDURE proc_test7(IN num INT)
BEGIN
DECLARE i INT; – 局部變量
SET i = 0;
WHILE i<num DO – i < 參數(shù)變量時(shí),循環(huán)執(zhí)行SQL語(yǔ)句
– SQL
SET i = i+1; – 每循環(huán)一次,i增加1
END WHILE;
END;
repeat
– repeat 創(chuàng)建存儲(chǔ)過(guò)程:添加參數(shù),按照參數(shù)值,創(chuàng)建班級(jí)信息,即參與為3,就創(chuàng)建3條班級(jí)信息
CREATE PROCEDURE proc_test7(IN num INT)
BEGIN
DECLARE i INT; – 局部變量
SET i = 0;
REPEAT – 循環(huán)執(zhí)行SQL
– SQL
SET i = i+1; – 每執(zhí)行一次,i+1
UNTIL i > num; – UNTIL 判斷后面結(jié)果,符合即跳出循環(huán)
END WHILE;
END;
loop
– LOOP 創(chuàng)建存儲(chǔ)過(guò)程:添加參數(shù),按照參數(shù)值,創(chuàng)建班級(jí)信息,即參與為3,就創(chuàng)建3條班級(jí)信息
CREATE PROCEDURE proc_test7(IN num INT)
BEGIN
DECLARE i INT; – 局部變量
SET i = 0;
myloop:LOOP – 設(shè)置myloop,在myloop中循環(huán)執(zhí)行SQL
– SQL
set i = i+1; – 每循環(huán)一次,i+1
IF i = num THEN – 判斷當(dāng)i = 參數(shù)值時(shí)
LEAVE myloop; – 跳出myloop循環(huán)
END IF;
END LOOP;
END;
1.7 存儲(chǔ)過(guò)程管理
1.7.1 查詢存儲(chǔ)過(guò)程
存儲(chǔ)過(guò)程隸屬于某個(gè)數(shù)據(jù)庫(kù)的,也就是說(shuō),當(dāng)我們將存儲(chǔ)過(guò)程創(chuàng)建在某個(gè)數(shù)據(jù)庫(kù)中,只能在當(dāng)前數(shù)據(jù)庫(kù)中調(diào)用,不能跨庫(kù)調(diào)用
-- 根據(jù)數(shù)據(jù)庫(kù)名,查詢當(dāng)前數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程 show PROCEDURE STATUS where db = 'db_test'; -- 查詢存儲(chǔ)過(guò)程的創(chuàng)建細(xì)節(jié) SHOW CREATE PROCEDURE db_test.proc_test1;
1.7.2 修改存儲(chǔ)過(guò)程
修改存儲(chǔ)過(guò)程,主要是指修改存儲(chǔ)過(guò)程的特征/特性
alter procedure <proc_name> 特征1 {特征2...}
存儲(chǔ)過(guò)程的特征參數(shù)
CONTAINS SQL
表示子程序包含SQL語(yǔ)句,但不包含讀或?qū)懙臄?shù)據(jù)操作NO SQL
表示子程序不包含SQL語(yǔ)句READS SQL DATA
表示子程序包含讀數(shù)據(jù)的語(yǔ)句MODIFIES SQL DATA
表示子程序中包含寫(xiě)數(shù)據(jù)的語(yǔ)句SQL SECURITY {DEFINER| INVOKER}
指明誰(shuí)有權(quán)限來(lái)執(zhí)行DEFINER
定義者才有執(zhí)行權(quán)限INVOKER
調(diào)用者可以執(zhí)行COMMENT string
表示注釋信息
– 修改存儲(chǔ)過(guò)程
ALTER PROCEDURE proc_test1 NO SQL;
1.7.3 刪除存儲(chǔ)過(guò)程
刪除存儲(chǔ)過(guò)程
-- 刪除存儲(chǔ)過(guò)程 DROP DROP PROCEDURE proc_test1;
二、存儲(chǔ)過(guò)程案例
使用存儲(chǔ)過(guò)程,完成借書(shū)操作
2.1 準(zhǔn)備數(shù)據(jù)
數(shù)據(jù)庫(kù)準(zhǔn)備:新建數(shù)據(jù)庫(kù)
## 創(chuàng)建數(shù)據(jù)庫(kù) create database da_test3; ## 使用數(shù)據(jù)庫(kù) use db_test3;
數(shù)據(jù)表及數(shù)據(jù)準(zhǔn)備
-- 創(chuàng)建圖書(shū)信息表 CREATE TABLE books( book_id INT PRIMARY KEY auto_increment, book_name VARCHAR(50) NOT NULL, book_author VARCHAR(20) NOT NULL, book_price DECIMAL(10,2) NOT NULL, book_stock INT NOT NULL, book_desc VARCHAR(200) ); -- 添加圖書(shū)信息 INSERT INTO books(book_name,book_author,book_price,book_stock,book_desc) VALUES ('Java從入門到放棄','斯蒂芬',28.80,100,'一本帶你從入門到放棄的java頂級(jí)教材'); INSERT INTO books(book_name,book_author,book_price,book_stock,book_desc) VALUES ('MySQL從入門到放棄','庫(kù)里',68.20,20,'一本帶你從入門到放棄的mysql頂級(jí)教材'); -- 創(chuàng)建學(xué)生信息表 CREATE TABLE students( stu_num CHAR(8) PRIMARY KEY, stu_name VARCHAR(20) NOT NULL, stu_denger CHAR(2) NOT NULL, stu_age INT NOT NULL ); -- 添加學(xué)生信息 INSERT INTO students (stu_num,stu_name,stu_denger,stu_age) VALUES('1001','不知火舞','女','20'); INSERT INTO students (stu_num,stu_name,stu_denger,stu_age) VALUES('1002','安其拉','女','25'); INSERT INTO students (stu_num,stu_name,stu_denger,stu_age) VALUES('1003','奕星','男','30');
2.2 創(chuàng)建存儲(chǔ)過(guò)程
創(chuàng)建一個(gè)存儲(chǔ)過(guò)程,實(shí)現(xiàn)借書(shū)的操作:哪個(gè)學(xué)生接了哪本數(shù),借書(shū)數(shù)量
操作:
- 保存借書(shū)記錄
- 修改圖書(shū)庫(kù)存
條件:
- 判斷學(xué)生是否存在
- 判斷圖書(shū)是否存在,庫(kù)存是否充足
創(chuàng)建借書(shū)記錄表
-- 借書(shū)記錄表 CREATE TABLE records( rid INT PRIMARY KEY auto_increment, snum CHAR(4) NOT NULL, bid INT NOT NULL, borrow_num INT NOT NULL, is_return INT NOT NULL, -- 0-未歸還;1-已歸還 borrow_date date NOT NULL, CONSTRAINT FK_RECORDS_STUDENTS FOREIGN KEY(snum) REFERENCES students(stu_num), CONSTRAINT FK_RECORDS_BOOKS FOREIGN KEY(bid) REFERENCES books(book_id) );
2.2.1 創(chuàng)建存儲(chǔ)過(guò)程
-- 實(shí)現(xiàn)借書(shū)業(yè)務(wù) -- 參數(shù)1: 輸入?yún)?shù) 學(xué)號(hào) a -- 參數(shù)2: 輸入?yún)?shù) 圖書(shū)標(biāo)號(hào) b -- 參數(shù)3: 輸入?yún)?shù) 借書(shū)數(shù)量 m -- 參數(shù)4: 輸出參數(shù) 借書(shū)狀態(tài)(1-借書(shū)成功;2-學(xué)號(hào)不存在;3-圖書(shū)不存在;4-庫(kù)存不足) CREATE PROCEDURE proc_borrow_book(IN a CHAR(4),IN b INT,IN m INT,OUT state INT) BEGIN DECLARE stu_count INT DEFAULT 0; DECLARE b_count INT DEFAULT 0; DECLARE b_stock INT DEFAULT 0; -- 一、判斷學(xué)號(hào)是否存在 根據(jù)參數(shù)a去學(xué)生表查詢是否存在學(xué)生 SELECT COUNT(stu_num) INTO stu_count from students where stu_num = a; IF stu_count > 0 THEN -- 學(xué)號(hào)存在 -- 二、查看圖書(shū)編號(hào)是否存在 SELECT COUNT(book_id) INTO b_count from books where book_id = b; IF b_count > 0 THEN -- 圖書(shū)存在 -- 三、查詢圖書(shū)庫(kù)存是否充足 SELECT book_stock INTO b_stock from books where book_id = b; IF b_stock >= m THEN -- 庫(kù)存滿足 -- 1、插入借書(shū)記錄表 INSERT INTO records(snum,bid,borrow_num,is_return,borrow_date) VALUES(a,b,m,0,SYSDATE()); -- 2、更新books表庫(kù)存數(shù)據(jù)book_stock UPDATE books SET book_stock = (b_stock - m) where book_id = b; -- 3、借書(shū)成功,返回成功狀態(tài) 0 SET state = 1; ELSE -- 庫(kù)存不足 SET state = 4; END IF; ELSE -- 圖書(shū)不存在 SET state = 3; END IF; ELSE -- 學(xué)號(hào)不存在 SET state = 2; END IF; END;
2.2.2 測(cè)試
SELECT * FROM students;-- 學(xué)生表 select * from books;-- 圖書(shū)表 select * from records;-- 借書(shū)記錄表 -- 測(cè)試借書(shū)存儲(chǔ)過(guò)程 -- 1、正常借書(shū)成功業(yè)務(wù)測(cè)試:學(xué)生學(xué)號(hào)a = 1001;借書(shū)編號(hào)b = 1;借書(shū)數(shù)量m = 10; SET @state = 0; CALL proc_borrow_book('1001',1,10,@state); SELECT @state from DUAL; -- 2、測(cè)試學(xué)號(hào)不存在:學(xué)生學(xué)號(hào)a = 1008;借書(shū)編號(hào)b = 1;借書(shū)數(shù)量m = 10; SET @state = 0; CALL proc_borrow_book('1008',1,10,@state); SELECT @state from DUAL; -- 3、測(cè)試圖書(shū)編號(hào)不存在:學(xué)生學(xué)號(hào)a = 1002;借書(shū)編號(hào)b = 8;借書(shū)數(shù)量m = 10; SET @state = 0; CALL proc_borrow_book('1002',8,10,@state); SELECT @state from DUAL; -- 4、測(cè)試圖書(shū)庫(kù)存不足:學(xué)生學(xué)號(hào)a = 1002;借書(shū)編號(hào)b = 2;借書(shū)數(shù)量m = 100; SET @state = 0; CALL proc_borrow_book('1002',2,100,@state); SELECT @state from DUAL;
到此這篇關(guān)于MySQL存儲(chǔ)過(guò)程的創(chuàng)建和使用的文章就介紹到這了,更多相關(guān)MySQL存儲(chǔ)過(guò)程使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySql存儲(chǔ)過(guò)程循環(huán)的使用分析詳解
- Mysql 存儲(chǔ)過(guò)程中使用游標(biāo)循環(huán)讀取臨時(shí)表
- 詳解MySql存儲(chǔ)過(guò)程參數(shù)的入門使用
- MySQL存儲(chǔ)過(guò)程中使用WHILE循環(huán)語(yǔ)句的方法
- Mysql存儲(chǔ)過(guò)程循環(huán)內(nèi)嵌套使用游標(biāo)示例代碼
- 詳解MySQL存儲(chǔ)過(guò)程的創(chuàng)建和調(diào)用
- mysql創(chuàng)建存儲(chǔ)過(guò)程及函數(shù)詳解
- MySQL之存儲(chǔ)過(guò)程按月創(chuàng)建表的方法步驟
- mysql存儲(chǔ)過(guò)程之創(chuàng)建(CREATE PROCEDURE)和調(diào)用(CALL)及變量創(chuàng)建(DECLARE)和賦值(SET)操作方法
- MySQL動(dòng)態(tài)創(chuàng)建表,數(shù)據(jù)分表的存儲(chǔ)過(guò)程
相關(guān)文章
PHP MYSQL注入攻擊需要預(yù)防7個(gè)要點(diǎn)
這篇文章主要介紹了PHP MYSQL開(kāi)發(fā)中,對(duì)于注入攻擊需要預(yù)防的7個(gè)要點(diǎn),大家需要注意了2013-11-11- 在下面的練習(xí)中,將創(chuàng)建一個(gè)應(yīng)用程序,它包含的一個(gè)方法能夠計(jì)算一名顧問(wèn)的收費(fèi)金額——假定該顧問(wèn)每天收取固定的費(fèi)用,將根據(jù)工作了多少天來(lái)收費(fèi)。首先要開(kāi)發(fā)應(yīng)用程序的邏輯,然后利用“生成方法存根向?qū)А眮?lái)寫(xiě)出這個(gè)邏輯使用的方法。接著,我們將在一個(gè)控制臺(tái)應(yīng)用程序中運(yùn)行方法,以獲得對(duì)該程序的最終印象。最后,我們將使用Visual Studio 2005調(diào)試器來(lái)檢查方法調(diào)用。2008-04-04
MySQL之FIELD()與ORDER BY()相結(jié)合實(shí)現(xiàn)對(duì)結(jié)果的自定義排序方式
這篇文章主要介紹了MySQL之FIELD()與ORDER BY()相結(jié)合實(shí)現(xiàn)對(duì)結(jié)果的自定義排序方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04Linux如何添加mysql系統(tǒng)環(huán)境變量
這篇文章主要介紹了Linux如何添加mysql系統(tǒng)環(huán)境變量問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04解讀MySQL中一個(gè)B+樹(shù)能存儲(chǔ)多少數(shù)據(jù)
這篇文章主要介紹了解讀MySQL中一個(gè)B+樹(shù)能存儲(chǔ)多少數(shù)據(jù)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02mysql百萬(wàn)數(shù)據(jù)表加索引優(yōu)化的方法
在大數(shù)據(jù)時(shí)代,隨著數(shù)據(jù)量的快速增長(zhǎng),對(duì)數(shù)據(jù)庫(kù)的索引優(yōu)化變得尤為重要,本文主要介紹了mysql百萬(wàn)數(shù)據(jù)表加索引優(yōu)化的方法,感興趣的可以了解一下2024-02-02MySQL數(shù)據(jù)庫(kù)表的合并及分區(qū)方式
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)表的合并及分區(qū)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08