sách gpt4 ai đã đi

Sự khác biệt đáng kể về hiệu suất giữa máy chủ mysql cục bộ và máy chủ mysql sản xuất

In lại 作者:行者123 更新时间:2023-11-30 23:39:23 31 4
mua khóa gpt4 Nike

我是在生产 MySQL 中运行的应用程序的新维护者。之前的维护者已经离开,留下的文档很少,而且联系不上了。

我面临的问题是执行以下请求大约需要 10 秒:

SELECT COUNT(*) FROM `users` WHERE (`active` = TRUE AND `deleted_at` IS NULL);

users 表中大约有 170,000 条记录,没有索引。

此请求的 EXPLAIN 命令:

mysql> EXPLAIN SELECT COUNT(*) FROM `users` WHERE (`active` = TRUE AND `deleted_at` IS NULL);
+----+-------------+-------+------+---------------+------+---------+------+--------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+--------+-------------+
| 1 | SIMPLE | users | ALL | NULL | NULL | NULL | NULL | 145407 | Using where |
+----+-------------+-------+------+---------------+------+---------+------+--------+-------------+

当前网站所有者(非技术人员)告诉我,性能在 2 周前突然下降。因此,在尝试添加索引之前,我已将生产数据库转储到本地 MySQL 服务器中。同样的请求在本地只需要 4 秒。

我对这种差异感到非常惊讶,我想知道操作系统或 MySQL 服务器的某些问题是否可能解释它?值得这样研究吗?如果是这样怎么办?如果不是,对于没有索引的这种查询,这种性能是否“正常”(我对 SQL 性能的经验有限)?

在服务器上:

$ mysql -u root --version
mysql Ver 14.14 Distrib 5.1.44, for unknown-linux-gnu (x86_64) using readline 5.1
$ cat /etc/redhat-release
CentOS release 5.4 (Final)

本地机器:

$ $ mysql -u root --version
mysql Ver 14.14 Distrib 5.1.42, for apple-darwin10.2.0 (i386) using EditLine wrapper

Cảm ơn!

Traroth 的编辑:

  • RAM:生产环境 4GB,本地机器 2GB
  • 请求缓存:确实在本地机器上后续请求要快得多,在生产中它也变得更好但仍然太慢(最好情况下大约 5 秒)。你认为这正常吗?
  • 两个数据库都使用 InnoDB
  • 文件系统:production box 是 VPS,当我查找文件系统时会出现“simfs”

1 Câu trả lời

您可以尝试在 active 和 deleted_at 列上建立索引

Tôi nghĩ delete_at 为 null 只是 ...

你可能想把它转换成nhỏ,默认0(表示为null)

如果您进行批量删除,optimize table your_table; 将压缩数据以获得更好的性能。

关于mysql - 本地 mysql 服务器和生产 mysql 服务器之间的显着性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4715119/

31 4 0
Bài viết được đề xuất: Mysql - 按每个月查询月份之间的记录
Bài viết được đề xuất: 如果脚本启动后连接电缆,Python 无法获取 IP
Bài viết được đề xuất: python - Django 在修改 less 文件时运行 bash 脚本
Bài viết được đề xuất: sql - mysql连接创建缺失日期的表
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com