空间商说:ECshop程序有问题!!占用资源超大!!

2016-07-07 15:13 来源:www.chinab4c.com 作者:ecshop专家

我的网站今天无故被关闭了!!输入网址后
提示:ECSHOP info: Can't select MySQL database(gonghang88_di5ji)!
(后面括号里是数据库名。)我就觉得奇怪。,没有人动过程序数据库怎么会出现这样的错误!
马上电话空间商。空间商告之,程序占用资源过大!网站已被关闭!我问他是什么原因造成的?
空间商告之。这个ECshop系统的程序有问题!让我来问程序作者。我哭呀。ECShop是一个自认为还不错,比较有名的购物系统了,如果这个程序有问题。那以后我们怎么办?已经花了大量时间和上传了全部产品上去。。。

我把我跟空间商的对话帖下来。。。希望管理员能看看。。是不是真的程序问题。救一救我们。说实话我很喜欢这个系统!

亚斯特服装网 12:38:31
请问是什么原因造成的。以免下次再发生

亚斯特服装网 12:39:01
你的一个同事给我发了以下一段代码:
me28
# Time: 091107 10:36:40
# User@Host: gonghang88_di5ji[gonghang88_di5ji] @ localhost []
# Query_time: 168Lock_time: 0Rows_sent: 97Rows_examined: 28026823
SELECT DISTINCT(b.goods_id) FROM `gonghang88_di5ji`.`di5ji_goods_attr` AS a, `gonghang88_di5ji`.`di5ji_goods_attr` AS b, `gonghang88_di5ji`.`di5ji_goods` AS g WHERE a.attr_id = b.attr_id AND b.attr_value = a.attr_value AND a.attr_id = 211 AND a.goods_attr_id = 24358;

亚斯特服装网 12:39:06
但我看不太懂

亚斯特服装网 12:47:49
有时间可以帮我分析下吗。非常感谢

TECH SUPPORT 13:14:49
要问程序作者

TECH SUPPORT 13:14:57
你的程序占资源太大

亚斯特服装网 13:21:47
[img]file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/%7B[W]SJ%601FUGóJ0GE%7DI0JW.gif[/img]不会吧。这个程序很多人在用呀。是比较出名的网店系统

亚斯特服装网 13:21:54
ECshop

TECH SUPPORT 13:21:53
我知道啊

TECH SUPPORT 13:21:56
确实是有问题

TECH SUPPORT 13:22:05
或者你的程序不是最新的

TECH SUPPORT 13:22:11
你发去问问他们

亚斯特服装网 13:23:09
是最新的,我用这个系统大概只有三个月。能查得出具体是哪个地方有问题吗?

TECH SUPPORT 13:23:15
程序有问题.

TECH SUPPORT 13:23:18
你发给他们

亚斯特服装网 13:23:26
会不会有人老攻击之类?

TECH SUPPORT 13:23:25
一看就知道是有问题了

TECH SUPPORT 13:23:26
不是

TECH SUPPORT 13:23:42
纯粹是程序写得有问题

亚斯特服装网 13:24:03
好吧。,我上官网去问问。。

亚斯特服装网 13:24:08
就是那段代码是吗

TECH SUPPORT 13:24:08


TECH SUPPORT 13:24:19
# Time: 091107 10:36:40
# User@Host: gonghang88_di5ji[gonghang88_di5ji] @ localhost []
# Query_time: 168Lock_time: 0Rows_sent: 97Rows_examined: 28026823
SELECT DISTINCT(b.goods_id) FROM `gonghang88_di5ji`.`di5ji_goods_attr` AS a, `gonghang88_di5ji`.`di5ji_goods_attr` AS b, `gonghang88_di5ji`.`di5ji_goods` AS g WHERE a.attr_id = b.attr_id AND b.attr_value = a.attr_value AND a.attr_id = 211 AND a.goods_attr_id = 24358;

亚斯特服装网 13:24:30
好的,这种事不会经常发生的。

亚斯特服装网 13:24:45
吧?

TECH SUPPORT 13:24:49
如果不修正的话,是经常发生

亚斯特服装网 13:25:39
会不会中我们的产品数量有关?

TECH SUPPORT 13:25:43
没有

TECH SUPPORT 13:25:47
纯粹是程序写得有问题

TECH SUPPORT 13:25:57
你就说空间商是这样说的

亚斯特服装网 13:26:41
以前用的另一个系统。空间商也说系统有问题。占用资源大。。
我真郁闷了,换了还是一样,,

TECH SUPPORT 13:27:00
别的我不知道, ecshop我见过几个用户都有这个问题

亚斯特服装网 13:27:18
每天访问人数也不超300人。唉。。

TECH SUPPORT 13:27:18
shopex就没见过有问题

亚斯特服装网 13:27:27
我去问问吧。。

亚斯特服装网 13:27:45
那那些同样问题的用户。解决了吗?

TECH SUPPORT 13:27:56
应该没有吧

亚斯特服装网 13:28:41
好的谢谢你。。我去了解下先


注:亚斯特服装网是我
就是这样。。。
希望管理员能认真看看。。是不是真的程序问题。望能及时修复!!救一救我们。说实话我是很喜欢这个系统的!
对了,我的网址是:http://www.di5ji.com.cn 现在已经叫空间商暂时开通了!

回答:
我打开是有些慢,但是打开正常

你所用的ECSHOP版本
是否自己增加修改过什么程序
你数据库中商品数量
等等请说明先
================
反正我们用官方提供的程序,没发现什么变慢的问题

ECShop 版本: v2.7.0 RELEASE 20090720
安装日期: 2009-07-18
编码: UTF-8

使用了360模版,修改了几个模版页面。程序我是不懂的。所以我修改不了!
商品数量:3700个左右
每日访问IP250-300

空间商说他见到过好几个ECshop用户都发现有这个问题。不知道怎么回事~

占用资源大跟空间上有什么关系啊 哈哈

很明显地,你用的ecshop程序执行的这个MYSQL查询有很大的问题

# Query_time: 168Lock_time: 0Rows_sent: 97Rows_examined: 28026823
SELECT DISTINCT(b.goods_id) FROM `gonghang88_di5ji`.`di5ji_goods_attr` AS a, `gonghang88_di5ji`.`di5ji_goods_attr` AS b, `gonghang88_di5ji`.`di5ji_goods` AS g WHERE a.attr_id = b.attr_id AND b.attr_value = a.attr_value AND a.attr_id = 211 AND a.goods_attr_id = 24358;

如果你的程序没经过修改, 那么ECSHOP就肯定有某个地方代码写得不够完善才会出现这种累赘的慢查询.
进行28026823行的表扫描占的资源不是普通的大.

LZ注意后台是否存在占内存的程序`

LZ注意后台是否存在占内存的程序`
itbenson 发表于 2009-11-7 18:46

朋友感谢您!请问我应该查询哪个地方?我不会安装插件啊。。后台都是系统原来的!望能指教!

我以前做个一个站 有7000多个商品都没有这样的问题

而且那个sql 也不像有问题!

我以前做个一个站 有7000多个商品都没有这样的问题

而且那个sql 也不像有问题!
齐迹 发表于 2009-11-7 22:01


不会SQL就不要乱说, 任何一个稍微会一点SQL的人一看就知道有问题.
连我这个半吊水的都能看出那个查询多了" `gonghang88_di5ji`.`di5ji_goods` AS g"这部分


楼主程序执行的
  1. SELECT DISTINCT(b.goods_id) FROM `gonghang88_di5ji`.`di5ji_goods_attr` AS a, `gonghang88_di5ji`.`di5ji_goods_attr` AS b, `gonghang88_di5ji`.`di5ji_goods` AS g WHERE a.attr_id = b.attr_id AND b.attr_value = a.attr_value AND a.attr_id = 211 AND a.goods_attr_id = 24358;
复制代码


完全可以优化为
  1. SELECT DISTINCT(b.goods_id) FROM `gonghang88_di5ji`.`di5ji_goods_attr` AS a, `gonghang88_di5ji`.`di5ji_goods_attr` AS b WHERE a.attr_id = b.attr_id AND b.attr_value = a.attr_value AND a.attr_id = 211 AND a.goods_attr_id = 24358;
复制代码


后者比前者占用服务器资源要少得多, 而且应该还有进行优化的余地.

我还是不知道应该修改哪里,,也没有官方的人来看一眼!!

呵呵 ,其实这个问题应该不复杂。 你重新下载程序。全部覆盖。 如果还是这样慢的话。应该就是你数据库的问题了。 我之前也遇到过,是数据库的问题。只要开启我的MYSQL。 服务器立即死机。程序一点问题都没有。最后重装了一下。重新建个数据库。 只把以前的产品导进来。问题解决了


我还是不知道应该修改哪里,,也没有官方的人来看一眼!!
gonghang888 发表于 2009-11-8 19:42


http://bbs.ecshop.com/thread-103829-1-1.html
参考这个

1# gonghang888
由于你的商品和属性有些多,查询相对会慢一些。
我们程序员对该部分进行了优化
你可以下载
gbk category.php (23.35 KB)
utf-8 category.php (24.04 KB)

放到根目录就可以了



您的空间最近仍然会对mysql数据库造成较大的压力,请您检
查一下程序是否可以进一步优化。
如下是您的mysql用户的进程表:

-----------+-------+-------------------------+---------------------------------------------------------------------------------------------------------------------------+
Command| Time | State| Info |
-----------+-------+-------------------------+---------------------------------------------------------------------------------------------------------------------------+
Query| 0 | Locked| SELECT DISTINCT(b.goods_id) FROM `gohufu_lianghao`.`ecs_goods_attr` AS a, `gohufu_lianghao`.`ecs_goo |

Query| 4 | Copying to tmp table | SELECT DISTINCT(b.goods_id) FROM `gohufu_lianghao`.`ecs_goods_attr` AS a, `gohufu_lianghao`.`ecs_goo |

Query| 4 | Copying to tmp table | SELECT DISTINCT(b.goods_id) FROM `gohufu_lianghao`.`ecs_goods_attr` AS a, `gohufu_lianghao`.`ecs_goo |

Query| 1 | Locked| UPDATE `gohufu_lianghao`.`ecs_goods` SET click_count = click_count + 1 WHERE goods_id = '3930'|
-----------+-------+-------------------------+---------------------------------------------------------------------------------------------------------------------------+


请问是什么原因造成的呢?