测试mysql 在 into outfile是否锁表
2020-08-05 本文已影响0人
frankie_cheung
最近在使用into outfile 导出.txt文件,但是一个表假如一直在写,那么这个时候要写 。不确定是不是会阻塞其他的insert sql,所以做个实验。
创建表语句
TEST_TABLE | CREATE TABLE `TEST_TABLE` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`TEST_ID` varchar(200) DEFAULT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
测试代码
import pymysql
sensor1 = {'host': 'localhost', 'port': 3306, 'user': 'root', 'passwd': 'MyNewPass4!',
'db': 'demo'}
conn3 = pymysql.connect(**sensor1)
cursor3 = conn3.cursor()
for i in range(200000):
sql="insert into TEST_TABLE(TEST_ID) values('{}') ".format(i)
print(sql)
cursor3.execute(sql)
conn3.commit()
conn3.close()
outfile
Database changed
mysql> select * from TEST_TABLE into outfile '/var/lib/mysql-files/TEST_TABLE.txt';
Query OK, 9923 rows affected (0.01 sec)
mysql>
实验证明此时的outfile并没有对表进行上锁,且insert 语句可以直接执行,但是outfile的文件只是某个时刻的快照,类似于mysqldump出来的sql文件。