列表页打开要等五秒CPU跑满,是排序字段没加索引,加索引后页面零点几秒打开
新手网站,打开一个列表页要等五秒,服务器CPU跑满,查了半天,是MySQL里有慢查询,一条SQL要跑两秒,几十条请求就把CPU占满。
首先,慢查询就是SQL语句没加索引,全表扫描,数据量大了之后,一条SQL扫几万行,耗时几秒。在宝塔的MySQL设置里,打开慢日志记录,把跑超过一秒的SQL记下来,找到那条慢SQL,给对应的字段加个索引,查询速度从两秒变成几毫秒。我之前客户的网站,文章列表页打开五秒,是按文章时间排序的字段没加索引,加了索引之后,页面打开立刻变成零点几秒。
新手最容易踩的坑,是给所有字段都加索引,索引多了,写数据的时候变慢,只给经常用来查询、排序的字段加索引,别乱加。
还有,别在循环里查数据库,一条文章循环里查十次,慢查询堆起来,网站就卡,把数据提前查出来,循环里用内存里的数据。
别网站卡,查MySQL慢日志,给慢SQL加索引,几行操作,网站速度就能快十倍。
本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。
0