-- 插入数据-- 禁用日志和外键约束,加快插入速度SET autocommit=0;SET unique_checks=0;SET foreign_key_checks=0;-- 循环插入一亿条数据DELIMITER $$
DROPPROCEDUREIFEXISTS insert_test_table $$
CREATEPROCEDURE insert_test_table(IN num_rows INT)BEGINDECLARE i INTDEFAULT1;WHILE i <= num_rows DOINSERTINTO test_table (varchar_col, char_col, text_col,tinyint_col, smallint_col, mediumint_col, int_col, bigint_col,float_col, double_col, decimal_col,date_col, datetime_col, timestamp_col, time_col, year_col,binary_col, varbinary_col, blob_col,enum_col, set_col)VALUES(CONCAT('varchar_', i), CONCAT('char_', i), CONCAT('text_', i),i MOD 128, i MOD 32768, i MOD 8388608, i MOD 2147483648,i MOD 9223372036854775808,(i MOD 100)+(i MOD 100/100),(i MOD 1000)+(i MOD 1000/100),(i MOD 10000)+(i MOD 10000/100),'2023-02-22',NOW(),NOW(),NOW(),'2023',LEFT(REPEAT('binary', i MOD 10),10),LEFT(REPEAT('varbinary', i MOD 50),50),LEFT(REPEAT('blob', i MOD 100),100),ELT(i MOD 3+1,'value1','value2','value3'),ELT(i MOD 3+1,'value1','value2','value3',NULL));SET i = i +1;IF i %1000=0THENCOMMIT;ENDIF;ENDWHILE;COMMIT;END $$
DELIMITER;-- 调用存储过程插入一亿条数据CALL insert_test_table(100000000);-- 启用日志和外键约束SET autocommit=1;SET unique_checks=1;SET foreign_key_checks=1;