gpt4 book ai didi

mysql - Google Cloud SQL 查询速度慢使用文件排序

转载 作者:行者123 更新时间:2023-11-29 03:01:09 27 4
gpt4 key购买 nike

mysql> EXPLAIN SELECT * FROM `condominio_boleto` 
INNER JOIN `contrato_contrato` ON (`condominio_boleto`.`contrato_id` = `contrato_contrato`.`id`)
INNER JOIN `cadastro_imovel` ON (`contrato_contrato`.`imovel_id` = `cadastro_imovel`.`id`)
INNER JOIN `cadastro_pessoa` ON (`contrato_contrato`.`pessoa_id` = `cadastro_pessoa`.`id`)
ORDER BY `condominio_boleto`.`id` DESC LIMIT 1;

+----+-------------+-------------------+--------+---------------------------------------------------------------+----------------------------+---------+------------------------------------+------+---------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------------------+--------+---------------------------------------------------------------+----------------------------+---------+------------------------------------+------+---------------------------------+
| 1 | SIMPLE | cadastro_imovel | ALL | PRIMARY | NULL | NULL | NULL | 128 | Using temporary; Using filesort |
| 1 | SIMPLE | contrato_contrato | ref | PRIMARY,contrato_contrato_33999a20,contrato_contrato_8b5ebd9d | contrato_contrato_33999a20 | 4 | mydb.cadastro_imovel.id | 1 | |
| 1 | SIMPLE | cadastro_pessoa | eq_ref | PRIMARY | PRIMARY | 4 | mydb.contrato_contrato.pessoa_id | 1 | |
| 1 | SIMPLE | condominio_boleto | ref | condominio_boleto_91c8cd68 | condominio_boleto_91c8cd68 | 4 | mydb.contrato_contrato.id | 9 | |
+----+-------------+-------------------+--------+---------------------------------------------------------------+----------------------------+---------+------------------------------------+------+---------------------------------+
4 rows in set (0.00 sec)

此查询在 Google Cloud SQL(D0 实例)上运行需要 3-4 秒。如果我删除 ORDER BY 子句,它不再显示 Extra Using temporary;使用 filesort 并加速到 <100ms。但是因为它是由 Django 管理员自动生成的,所以我无法删除那个 ORDER BY 子句。

所有这些 table 都很小。 condominio_boleto 有 5k 条记录,所有其他表的记录都少于 500 条。

我可以用索引加快速度吗?这是 Google Cloud SQL 上的已知问题吗?

最佳答案

我在 Google Cloud SQL Tier D0(128MB RAM)上也有过类似的经历。我的一个网站运行速度非常慢,需要很长时间才能返回页面。运行 Jet Profiler 后,我发现我的数据库查询运行缓慢(执行 2-3 秒,平均 7 个线程)。问题查询是那些具有内部连接和顺序的查询。因此,我升级到 D1 层(512MB RAM)并且正如预期的那样,不再有缓慢的查询。我的猜测是 D0 不是用来处理高度负载或复杂查询的。它主要适用于低使用率和测试。

关于mysql - Google Cloud SQL 查询速度慢使用文件排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23419292/

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