mysql - 在mysql中使用数据库命令是否锁定整个数据库?

标签 mysql performance

我有一个关于 mysql 的严重性能问题。
存储引擎是myisam。
我在慢日志中发现了这样的模式:
如果更新命令很慢,前面会出现一个use database_name,锁定时间会很长。

是否使用 database_name 命令锁定整个数据库? database_name 命令是否会刷新缓存,然后对更新命令产生不良影响?

最佳答案

不,使用数据库命令的成本并不高。

但是如果您使用 MyISAM,UPDATE 语句将锁定整个表。您可能会看到多个 UPDATE 语句相互排队。

我建议对所有表使用 InnoDB。不仅因为它支持行级锁定(实际上是 MVCC,它比行级锁定更好),而且 InnoDB 在抵抗数据损坏方面优于 MyISAM。

关于mysql - 在mysql中使用数据库命令是否锁定整个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8581479/

相关文章:

mysql - $this->db->insert_id() 在 mysql codeigniter 中不起作用

php - 命令不同步;当我循环运行时,你现在不能运行这个命令

php - 如何在 mysql_query() 函数中执行多个 MySQL 查询?

mysql - 使用左连接计算来自另一个 mysql 表的记录

c# - LINQ:仅在值不为空时添加 where 子句

MySQL 无法从 Linux 上安装的公共(public) IP 访问

performance - 0.5和0.6减速?

javascript - 当 w/h 增加 1px 时,Canvas clearRect 的性能非常不同

performance - 在 Akamai 中压缩内容

linux - NAPI 在 IRQ Coalesce 之前有什么优势?