Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 长插入期间对MyISAM表的读取访问?_Sql_Mysql_Database_Locking - Fatal编程技术网

Sql 长插入期间对MyISAM表的读取访问?

Sql 长插入期间对MyISAM表的读取访问?,sql,mysql,database,locking,Sql,Mysql,Database,Locking,在mysql上,仅使用myisam表,我需要在长时间运行的INSERT过程中访问表的内容 有没有办法防止INSERT以使并发SELECT无法运行的方式锁定表 这就是我的目的:检查到目前为止插入了多少记录。不幸的是,NOLOCK无法在mysql上运行,我只能找到控制事务锁的命令,例如,将事务隔离级别设置为-据我所知,这根本不应该应用于myisam表,因为它们首先不支持事务。myisam锁定将阻止选择。在InnoDB上使用MyISAM有什么原因吗?如果您不想更换发动机,我想这可能是您的解决方案: 1

在mysql上,仅使用myisam表,我需要在长时间运行的INSERT过程中访问表的内容

有没有办法防止INSERT以使并发SELECT无法运行的方式锁定表


这就是我的目的:检查到目前为止插入了多少记录。不幸的是,NOLOCK无法在mysql上运行,我只能找到控制事务锁的命令,例如,将事务隔离级别设置为-据我所知,这根本不应该应用于myisam表,因为它们首先不支持事务。

myisam锁定将阻止选择。在InnoDB上使用MyISAM有什么原因吗?如果您不想更换发动机,我想这可能是您的解决方案:

1:使用cron作业或其他计划任务创建表的物化视图,应用程序可以在不阻塞的情况下查询这些任务


2:使用触发器统计已发生的插入数,并使用此元数据表查找插入数。

MyISAM锁定将阻止选择。在InnoDB上使用MyISAM有什么原因吗?如果您不想更换发动机,我想这可能是您的解决方案:

1:使用cron作业或其他计划任务创建表的物化视图,应用程序可以在不阻塞的情况下查询这些任务

2:使用触发器统计已发生的插入数,并使用此元数据表查找插入数