1

我们有点过早地启动了我们的网站,并且遇到了一些令人讨厌的性能问题。我是一名 MS SQL Server 专业人士,但我的任务是调整这个 MySQL 数据库。据我了解,MyISAM 数据库没有行级锁定,如果您正在编辑数据,它将锁定整个表。有人可以确认或否认我的假设....

我们在 Google Adwords 上花了很多钱,并且已经能够为网站带来一些“无用”的流量……但与此同时,我们的内部工作人员全天都在为网站加载新产品。在没有人输入任何东西的晚上,我看到网站加载大约 2-3 秒.. 但是当有人输入时,加载时间下降到 8-9... 有时加载 10+ 秒。

此外,最近将我们的 cs-cart 缓存从“file”切换到“mysql”.. 这个表大概也是 MyISAM.. 这也会影响性能,因为本质上你会经常写入这个表。

4

1 回答 1

0
    As I understand MyISAM databases do not have row level locking and will lock up the entire table if you're editing data. Can someone please confirm or deny my assumptions....

你说的对。MyISAM 只有表级锁。InnoDB 支持行级锁。

实际上,如果有许多并发用户访问 MyISAM 表,锁定等待时间可能会很长。但要证明/反驳您需要在慢日志中收集所有查询(将 long_query_time 设置为 0)并使用 pt-query-digest 查看日志。然后你会看到 MySQL 大部分时间都花在了哪里。因此解决方案可能更容易找到。

于 2014-02-18T00:50:20.580 回答