为了账号安全,请及时绑定邮箱和手机立即绑定

MySql 8.0 读取速度

MySql 8.0 读取速度

PHP
烙印99 2023-07-01 16:53:57
我需要一些专业知识,我有一个庞大的 SQL 数据库,可以与我的移动应用程序结合使用。我从数据库获取结果的时间很长,有时长达 20 到 25 秒。我已经设法提高速度,现在检索结果需要 40 秒。我希望有人能够了解如何加快查询速度并在 20 秒以内返回结果。主表有4列+1列“id”列,数据库包含15,254,543行数据。目前它被设置为InnoDB,有4个索引,大小约为1.3GB。我的服务器是 GoDaddy VPS,1 个 CPU,4 GB RAM。该网站是专用的,我不与其他任何人共享资源,除了一个非常基本的网站之外,它的唯一用途是 SQL 数据库。只是要注意,数据库记录计数不会变得更大,我真的只需要找出一种更好的方法来比 20 秒更快地返回查询。更详细地说,Android 应用程序通过 php 文档连接到我的网站来查询并返回结果,我想也许有更好的方法来解决这个问题,这可能就是陷阱。一个有趣的提示是,当我在 PHP My Admin 中时,我可以进行搜索并在 3 秒内获得结果,这也表明问题可能出在我的 php 文档中。下面是我为完成这项工作而编写的 php 文档。
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

<?php

require "conn.php";

$FSC = $_POST["FSC"];

$PART_NUMBER = $_POST["NIIN"];


$mysql_qry_1 = "select * from MyTable where PART_NUMBER like '$PART_NUMBER';";


$result_1 = mysqli_query($conn ,$mysql_qry_1);


if(mysqli_num_rows($result_1) > 0) {

    $row = mysqli_fetch_assoc($result_1);

    $PART_NUMBER = $row["PART_NUMBER"];

    $FSC = $row["FSC"];

    $NIIN = $row["NIIN"];

    $ITEM_NAME = $row["ITEM_NAME"];

    

    echo $ITEM_NAME, ",>" .$PART_NUMBER, ",>" .$FSC, "" .$NIIN;


//usage stats   

$sql = "INSERT INTO USAGE_STATS (ITEM_NAME, FSC, NIIN, PART_NUMBER)

VALUES ('$ITEM_NAME', '$FSC', '$NIIN', '$PART_NUMBER')";


if ($conn->query($sql) === TRUE) {

    $row = mysqli_insert_id($conn);

} else {

    //do nothing

}

//


} else {

    echo "NO RESULT CHECK TO ENSURE CORRECT PART NUMBER WAS ENTERED ,> | ,>0000000000000";

}


$mysql_qry_2 = "select * from MYTAB where FSC like '$FSC' and NIIN like '$NIIN';";


$result_2 = mysqli_query($conn ,$mysql_qry_2);


if(mysqli_num_rows($result_2) > 0) {

    $row = mysqli_fetch_assoc($result_2);

    $AD_PART_NUMBER = $row["PART_NUMBER"];


    if(mysqli_num_rows($result_2) > 1){

        echo ",>";

        while($row = mysqli_fetch_assoc($result_2)) {

            $AD_PART_NUMBER = $row["PART_NUMBER"];

            echo $AD_PART_NUMBER, ",  ";

        }

    

        } else {

            echo ",> | NO ADDITIONAL INFO FOUND | ";

        }

} else {

    echo ",> | NO ADDITIONAL INFO FOUND | ";

}



mysqli_close($con);

?>

所以我的问题是如何利用我拥有的可用资源提高读取速度,或者我当前的 PHP 文档是否存在导致此处瓶颈的问题?


查看完整回答
反对 回复 2023-07-01
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

通过选择已建立索引的特定列,您将获得更快的读取速度,而不是使用 LIKE。

SELECT * FROM table_name FORCE INDEX (index_list) WHERE condition;

另一个大大加快Mysql速度的事情是在VPS服务器上使用SSD驱动器。SSD 驱动器将大大减少扫描如此大的数据库所需的时间。


查看完整回答
反对 回复 2023-07-01
  • 2 回答
  • 0 关注
  • 113 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信