#!/usr/bin/perl use strict; use warnings; use DBI; my $total_users = 100000; my $dbh = DBI->connect( 'dbi:mysql:database=test', 'root', '', { RaiseError => 1 }, ); my @schema = ( 'DROP TABLE IF EXISTS t', 'CREATE TABLE t(id INT PRIMARY KEY, name VARCHAR(255) NOT NULL, email VARCHAR(255) NULL)', ); $dbh->do($_) foreach @schema; for ( my $o = 1; $o <= $total_users; $o++ ) { my $name = ''; $name .= ('a'..'z')[int rand 26] for 1..20; my $email; if (0.01 < rand 1) { $email = ''; $email .= ('a'..'z')[int rand 26] for 1..20; } $dbh->do("INSERT INTO t VALUES($o, ?, ?)", undef, $name, $email); } my @indexes = ( 'CREATE INDEX t1 ON t(name)', 'CREATE INDEX t2 ON t(email)', ); $dbh->do($_) foreach @indexes;