从数据库快速SELECT方式MYSQL

问题描述 投票:0回答:1

我遇到了一些问题,我的数据库大小是 48.0 MB,它有

ids
列,其中包含用户的 id 。

我的命令:

SELECT ids FROM users WHERE ids = $from_id AND bot_id = $botid

bot_id :它指的是我从哪里获得这个id。

问题:需要

1.68 sec
才能给我结果,这需要很多时间。

我正在寻找快速获得此结果的方法。

更多信息:

  • 我使用PHP8.2 PDO SQL通过此命令获取查询结果:

    $PDO->query("从

    users
    中选择 ids,其中 ids = $from_id AND bot_id = $botid");

  • 用户表的主键是 (

    id
    )

php mysql pdo
1个回答
0
投票

您可以从一些基础知识开始:

添加索引:通过在

ids
bot_id
上添加索引来加快查询速度。

ALTER TABLE users ADD INDEX idx_ids_botid (ids, bot_id);

使用准备好的语句:您的代码对 SQL 注入开放。使用 PDO 准备好的语句来保护它:

$stmt = $PDO->prepare("SELECT ids FROM users WHERE ids = :from_id AND bot_id = :botid");
$stmt->bindParam(':from_id', $from_id, PDO::PARAM_INT);
$stmt->bindParam(':botid', $botid, PDO::PARAM_INT);
$stmt->execute();

服务器优化:检查您的 MySQL 服务器设置。如果需要,调整缓冲区大小。

硬件:如果可能,请使用 SSD 而不是 HDD,以实现更快的访问速度。

分析查询:在查询之前使用

EXPLAIN
查看其处理方式。

缓存:对于频繁查询,可以考虑使用Redis等缓存工具。

维护数据库:偶尔运行

OPTIMIZE TABLE
来维护您的数据库。

© www.soinside.com 2019 - 2024. All rights reserved.