In MySQL you can insert multiple rows like this:
INSERT INTO \'tablename\' (\'column1\', \'column2\') VALUES
(\'data1\', \'data2\'),
(\'data1\', \'da
The problem with using transaction is that you lock the table also for reading. So if you have really much data to insert and you need to access to your data, for exemple a preview or so, this way doesn't work well.
The problem with the other solution is that you lose the order of the inserting
insert into mytable (col)
select 'c'
union
select 'd'
union
select 'a'
union
select 'b';
In the sqlite the data will be store a,b,c,d...