首页 > 解决方案 > 优化 SQL 查询“SELECT”

问题描述

如何优化此查询

SELECT count(*) FROM chats WHERE removeAt = 0
SELECT count(*) FROM messages WHERE removeAt = 0
SELECT count(*) FROM messages WHERE chatId = (:chatId) AND removeAt = 0
SELECT count(*) FROM chats WHERE (fromUserId = (:userId) OR toUserId = (:userId)) AND removeAt = 0

我那个查询的 QPS 大约 1200

标签: mysqldatabasemariadb

解决方案


这一次获得 2 个值。因此,速度加倍。

SELECT COUNT(*) AS not_removed,
       SUM(chatId = (:chatId)) AS that_id
    FROM chats
    WHERE removeAt = 0;

推荐阅读