MySQL 數字輔助表
首先建立數字輔助表
建立儲存過程,將數字插入nums中
然後插入50,000個數字
但是此儲存過程效率太慢,主要開銷在於insert語句被執行了50,000次
最佳化方法:
若執行
最終插入的數值雖並非50,000個(大於50,000),但極大減少了insert次數,這將大大提升效率。
使用的時候,可以透過where來限制。
-
create table nums(
- a int unsigned primary key);
建立儲存過程,將數字插入nums中
-
create procedure pCreateNums (cnt int unsigned)
-
begin
-
declare a int unsigned default 1;
-
truncate table nums;
-
while a<=cnt do
-
begin
-
insert into nums select a;
-
set a=a+1;
-
end;
-
end while;
- end;
然後插入50,000個數字
- call pCreateNums (50000);
但是此儲存過程效率太慢,主要開銷在於insert語句被執行了50,000次
最佳化方法:
-
create procedure pFastCreateNums (cnt int unsigned)
-
begin
-
declare s int unsigned default 1;
-
truncate table nums;
-
insert into nums select s;
-
while s*2<=cnt do
-
begin
-
insert into nums select a+s from nums;
-
set s=s*2;
-
end;
-
end while;
- end;
若執行
- call pFastCreateNums (50000);
最終插入的數值雖並非50,000個(大於50,000),但極大減少了insert次數,這將大大提升效率。
使用的時候,可以透過where來限制。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-1248559/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL數字輔助表MySql
- 給定數字生成中文數字(MySQL)MySql
- 四邊形輔助線做法
- MySQL 數字函式大全MySql函式
- mysql表最多欄位數MySql
- T-SQL——數字輔助表SQL
- mysql 字串和數字比,字串會隱式轉換為數字0MySql字串
- MySQL:Innodb中數字的儲存方式MySql
- mysql新建表和多表查詢,關鍵字joinMySql
- 查mysql欄位中的數字記錄MySql
- 檢視mysql表大小和記錄數MySql
- 資料庫數字參考表的妙用OM資料庫
- MySQL 查詢所有表中的記錄數MySql
- MySQL 關於表名大小寫的引數MySql
- 用數字輔助表補錄資料一則
- MySQL進階實戰6,快取表、檢視、計數器表MySql快取
- MySQL單表最大記錄數不能超過多少?MySql
- 資料資產入表:工業數字化新機遇
- 數字輔助表應用一則(分組生成行)
- 缺失的數字;及找數字分析
- 無效數字問題:Oracle-MySQL-PG大不同OracleMySql
- MySQL JDBC row_count()數字不準確的問題MySqlJDBC
- Mysql匯入大表檔案時注意修改引數MySql
- 找數字續;及缺失的數字分析
- 【PL/SQL】向表中插入連續數字之PL/SQL方法SQL
- edgeR:一個數字基因表達資料差異表達分析Bioconductor程式包
- 數字遊戲遊戲
- 數字加密加密
- 如何在MySQL中使用CONVERT將字串轉換為數字MySql字串
- MySQL表鎖MySql
- MySQL -- 表鎖MySql
- MySQL 回表MySql
- MySQL操作表MySql
- mysql三表連線查詢以及百分數排序MySql排序
- MYSQL 匯出資料庫中某張表的部分數…MySql資料庫
- MySQL 引數- Innodb_File_Per_Table(獨立表空間)MySql
- 中文數字阿拉伯數字相互轉換
- 數字格式字串轉數字保留後面0字串