创建procedure,循环insert一定量数据 ##use test ##drop procedure pro1;
DELIMITER // create procedure pro1() begin declare i int; set i=1; while i<100000 do insert into test.cc(id,name) values(i, "aa"); set i=i+1; end while; end;//
2、独立表空间下,可以自定义表的存储位置,(有时将部分热表放在不同的磁盘可有效地提升IO性能) create table test(id int) data directory='c:/software'; create table test1(id int,name varchar(20),primary key (id)) data directory='c:/software';
3、独立表空间下,可以回收表空间碎片(比如一个非常大的delete操作之后释放的空间)
1)创建测试表 DELIMITER // create procedure pro_test1() begin declare i int;
表大小:test1.ibd 368KB
2)delete后表大小: mysql> delete from test1; test1.ibd 384KB
3)回收表空间 mysql> alter table test1 engine=innodb; test1.ibd 96KB
mysql> select table_name, (data_length+index_length)/1024/1024 as total_mb, table_rows from information_schema.tables where table_schema='test' and table_name='TEST1';