我有一个上传位置,因此用户可以使用上传的文件更新我的数据库的一部分。这些文件通常高达 9gb,因此插入 150,000,000 行可能需要几分钟时间。
单击网站上的按钮更新数据库后,PHP(使用mysqli)基本上会进入mysql lock down。如果我打开其他选项卡,在大更新完成之前它们什么也得不到。但是,我知道它实际上并没有锁定数据库/表,因为从 CLI 我仍然可以“SELECT count(*) FROM table”并且它马上给了我一个结果。
插入 150,000,000 条记录同时仍让其他 php 页面访问数据库(只读)的最佳方法是什么?