MYSQL 儲存過程操作

2021-09-13 15:23:31 字數 1840 閱讀 6791

儲存過程(stored procedure)是一組為了完成特定功能的sql語句集

(批量插入)

是將常用或複雜的工作,預先用sql語句寫好並用乙個指定名稱儲存起來, 以後需要資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫 call 儲存過程名字, 即可自動完成命令。

儲存過程是由流控制和sql語句書寫的過程,這個過程經編譯和優化後儲存在資料庫伺服器中,可由應用程式通過乙個呼叫來執行,而且允許使用者宣告變數 。

同時,儲存過程可以接收和輸出引數、返回執行儲存過程的狀態值,也可以巢狀呼叫。

select `name` from mysql.proc where db = 'your_db_name' and `type` = 'procedure'

show procedure status;

drop procedure if exists your_procedure;

create table example (

id int primary key auto_increment not null,

name varchar( 50 ) not null,

value varchar( 50 ) not null

)create procedure your_prod()

begin

declare i int;

set i=0;

start transaction;

while i < 100 do

insert into example 

(name, value)

values(rand() * 10 * i,rand() * 20 * i);

set i=i+1;

end while;

commit;

endcall your_prod();

最快的當然是直接 copy 資料庫表的資料檔案(版本和平台最好要相同或相似);

1. 設定 innodb_flush_log_at_trx_commit = 0 ,相對於 innodb_flush_log_at_trx_commit = 1 可以十分明顯的提公升匯入速度;

2. 使用 load data local infile 提速明顯;

3. 修改引數 bulk_insert_buffer_size, 調大批量插入的快取;

4. 合併多條 insert 為一條: insert into t values(a,b,c), (d,e,f) ,,,

p.s.

插入一條時

insert into example

( name, value)

values

( 'name 1', 'value 1');

插入n條時,合併為一條

insert into example

(name, value)

values

( 'name 1', 'value 1'),

( 'name 2', 'value 2'),

( 'name 3', 'value 3'),

('name 4', 'value 4');

如果我們插入列的順序和表中列的順序一致的話,還可以省去列名的定義 

insert into example

values

( 'name 1', 'value 1'),

( 'name 2', 'value 2'),

( 'name 3', 'value 3'),

('name 4', 'value 4');

5. 手動使用事物;

mysql儲存過程 MySQL儲存過程

在本節中,您將逐步學習如何在mysql中編寫和開發儲存過程。首先,我們向您介紹儲存過程的概念,並討論何時使用它。然後,展示如何使用過程 的基本元素,如建立儲存過程的語句,if else,case,loop,儲存過程的引數。下面每個教程都包含了易於理解的示例和詳細的說明。如果您瀏覽並學習所有教程,您可...

mysql 儲存過程 mysql 儲存過程

建立 為建立儲存過程的結束標誌,使用delimiter 可更改標誌 格式create procedure begin sqlend create procedure myprocedure in param integer begin select from tb role where tb rol...

mysql 儲存過程 MySQL儲存過程

目錄 儲存過程 簡介是一組為了完成特定功能的sql語句集合 比傳統sql速度更快 執行效率更高 儲存過程的優點 執行一次後,會將生成的二進位制 駐留緩衝區,提高執行效率 sql語句加上控制語句的集合,靈活性高 在伺服器端儲存,客戶端呼叫時,降低網路負載 可多次重複被呼叫,可隨時修改,不影響客戶端呼叫...