#Shell 스크립트 - 테스트용 SQL 문을 대량 생성

2287 단어
아래 표에 1000000줄 데이터를 삽입하려면 색인 등 사용 상황을 테스트하십시오.
Create Table: CREATE TABLE `key_t` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `key1` int(11) DEFAULT NULL,
  `key2` int(11) DEFAULT NULL,
  `key3` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `key1` (`key1`,`key2`,`key3`)
) ENGINE=InnoDB

1000000 줄을 생성하여 sql에 삽입합니다. (키 1 키 2 키 3의 값은 0~999의 무작위 정수입니다.)
$ echo "insert into key_t(key1,key2,key3) values(floor((rand()*1000)),floor(rand()*1000), floor(rand()*1000));" | awk '{for(i=0; i<1000000; i++) print $0}' > insert_into_key_t.sql
$ head insert_into_key_t.sql 
insert into key_t(key1,key2,key3) values(floor((rand()*1000)),floor(rand()*1000), floor(rand()*1000));
insert into key_t(key1,key2,key3) values(floor((rand()*1000)),floor(rand()*1000), floor(rand()*1000));
insert into key_t(key1,key2,key3) values(floor((rand()*1000)),floor(rand()*1000), floor(rand()*1000));

#    awk                   
$ echo "" | awk '{for(i=0; i<3; i++) print "insert into key_t(key1,key2,key3) values("int((rand()*1000))", "int(rand()*1000)", "int(rand()*1000)");"}' 
insert into key_t(key1,key2,key3) values(237, 291, 845);
insert into key_t(key1,key2,key3) values(152, 585, 193);
insert into key_t(key1,key2,key3) values(810, 173, 484);

mysql 테이블로 가져오기
$ mysql -uroot -p test < insert_into_key_t.sql
mysql> explain select count(*) from key_t where key1=1 group by key3;
+----+-------------+-------+------+---------------+------+---------+-------+------+-----------------------------------------------------------+
| id | select_type | table | type | possible_keys | key  | key_len | ref   | rows | Extra                                                     |
+----+-------------+-------+------+---------------+------+---------+-------+------+-----------------------------------------------------------+
|  1 | SIMPLE      | key_t | ref  | key1          | key1 | 5       | const |  961 | Using where; Using index; Using temporary; Using filesort |
+----+-------------+-------+------+---------------+------+---------+-------+------+-----------------------------------------------------------+
1 row in set (0.00 sec)

좋은 웹페이지 즐겨찾기