gpt4 book ai didi

PHP:在 PHP 中锁定所有 MySQL 表

转载 作者:行者123 更新时间:2023-11-29 14:56:33 25 4
gpt4 key购买 nike

如何在 PHP 中查看 MySQL 数据库中的所有表?

我确信一定有办法做到这一点,但似乎找不到任何 PHP 函数来完成这项工作。

正在寻找这样的东西

lock_all_mysql_tables();
//.... calling some external functions which require db lock
unlock_all_mysql_tables();

最佳答案

有一种更简单的方法可以锁定所有表,但它需要“滥用”FLUSH 命令来锁定所有表。刷新整个数据库意味着 MySQL 将重新加载其各种内部缓存,因此这可能不适用于大型表/数据库。

我只在 MyISAM 表上尝试过此操作,而且我听人们说这对于 InnoDB 表不能正常工作,所以如果您的表类型不是 MyISAM,请小心。

具体操作方法如下:

mysql_query("FLUSH TABLES WITH READ LOCK");
/* do stuff while entire database is locked */
mysql_query("UNLOCK TABLES");

如果您使用 MySQL 复制,您可以通过将第一个查询更改为:来避免将 FLUSH 命令同步到从服务器:

mysql_query("FLUSH LOCAL TABLES WITH READ LOCK");

更多信息请点击:http://dev.mysql.com/doc/refman/5.0/en/flush.html

关于PHP:在 PHP 中锁定所有 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4489494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com