MySql 8.0 读取速度

我需要一些专业知识,我有一个庞大的 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 文档。


烙印99
浏览 122回答 2
2回答

肥皂起泡泡

<?phprequire "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) {&nbsp; &nbsp; $row = mysqli_fetch_assoc($result_1);&nbsp; &nbsp; $PART_NUMBER = $row["PART_NUMBER"];&nbsp; &nbsp; $FSC = $row["FSC"];&nbsp; &nbsp; $NIIN = $row["NIIN"];&nbsp; &nbsp; $ITEM_NAME = $row["ITEM_NAME"];&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; echo $ITEM_NAME, ",>" .$PART_NUMBER, ",>" .$FSC, "" .$NIIN;//usage stats&nbsp; &nbsp;$sql = "INSERT INTO USAGE_STATS (ITEM_NAME, FSC, NIIN, PART_NUMBER)VALUES ('$ITEM_NAME', '$FSC', '$NIIN', '$PART_NUMBER')";if ($conn->query($sql) === TRUE) {&nbsp; &nbsp; $row = mysqli_insert_id($conn);} else {&nbsp; &nbsp; //do nothing}//} else {&nbsp; &nbsp; 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) {&nbsp; &nbsp; $row = mysqli_fetch_assoc($result_2);&nbsp; &nbsp; $AD_PART_NUMBER = $row["PART_NUMBER"];&nbsp; &nbsp; if(mysqli_num_rows($result_2) > 1){&nbsp; &nbsp; &nbsp; &nbsp; echo ",>";&nbsp; &nbsp; &nbsp; &nbsp; while($row = mysqli_fetch_assoc($result_2)) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $AD_PART_NUMBER = $row["PART_NUMBER"];&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo $AD_PART_NUMBER, ",&nbsp; ";&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo ",> | NO ADDITIONAL INFO FOUND | ";&nbsp; &nbsp; &nbsp; &nbsp; }} else {&nbsp; &nbsp; echo ",> | NO ADDITIONAL INFO FOUND | ";}mysqli_close($con);?>所以我的问题是如何利用我拥有的可用资源提高读取速度,或者我当前的 PHP 文档是否存在导致此处瓶颈的问题?

蓝山帝景

通过选择已建立索引的特定列,您将获得更快的读取速度,而不是使用 LIKE。SELECT&nbsp;*&nbsp;FROM&nbsp;table_name&nbsp;FORCE&nbsp;INDEX&nbsp;(index_list)&nbsp;WHERE&nbsp;condition;另一个大大加快Mysql速度的事情是在VPS服务器上使用SSD驱动器。SSD 驱动器将大大减少扫描如此大的数据库所需的时间。
打开App,查看更多内容
随时随地看视频慕课网APP