我有一个关于 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/