测试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文件。

上一篇下一篇

猜你喜欢

热点阅读