php mysql插入内存问题
我有一些PHP mysql代码,可以插入到表中(如下所示)。在我家的盒子上,它似乎运行得很好,但在我托管的生产服务器上,我得到了难以置信的内存php mysql插入内存问题,php,mysql,Php,Mysql,我有一些PHP mysql代码,可以插入到表中(如下所示)。在我家的盒子上,它似乎运行得很好,但在我托管的生产服务器上,我得到了难以置信的内存 Column Type Null Default Comments uid int(1) No CUID int(11) No AUID int(11) No user varchar(10) No position varchar(15) No Us
Column Type Null Default Comments
uid int(1) No
CUID int(11) No
AUID int(11) No
user varchar(10) No
position varchar(15) No
User Added By varchar(10) No
Added On datetime No Indexes
Keyname Type Unique Packed Column Cardinality Collation Null Comment
PRIMARY BTREE Yes No uid 17196 A No
AUID BTREE No No AUID 9 A No
user BTREE No No user 150 A No
CUID BTREE No No CUID 3439 A No
Space usage:
Data 794,776 B
Index 605,184 B
Total 1,367 KiB
Row Statistics:
Format dynamic
Rows 17,196
Row length ø 46
Row size ø 81 B
Next autoindex 27,104
当我进入表格所在的网页时,我填写表格并插入此表。第一次速度是合理的。第二次完成页面需要10秒,当我检查托管服务器上的内存日志等时,RAM达到了所有限制
From ▴ To aCPU mCpu aEP mEP lEP aMEM mMEM lMEM MemF MepF
02-27 10:08 02-27 10:09 12 62 1 3 20 359.1M 4.0G 4.0G 1 0
02-27 10:07 02-27 10:08 0 0 0 0 20 4.1M 4.1M 4.0G 0 0
02-27 10:06 02-27 10:07 0 0 0 0 20 4.1M 4.1M 4.0G 0 0
02-27 10:05 02-27 10:06 0 0 0 0 20 4.1M 4.1M 4.0G 0 0
02-27 10:04 02-27 10:05 25 62 1 4 20 22.5M 59.8M 4.0G 0 0
02-27 10:00 02-27 10:05 0 0 0 2 20 4.6M 22.7M 4.0G 0 0
02-27 09:00 02-27 10:00 0 75 0 4 20 5.8M 452.7M 4.0G 0 0
02-27 08:00 02-27 09:00 0 0 0 1 20 284K 18.1M 4.0G 0 0
注意第一行中的4.0G
我真的很想知道这会是什么。主机使用的是SUPPP,我听说这里面曾经有bug(但那是几年前的事了)
也许这是不现实的,但是在这个表中插入一个(我认为它相对较小)不会导致内存问题。以下是insert语句:
mysql_query('INSERT INTO call_member SET user="'.$user.'", position="'.$position.'", CUID="'.$CUID.'", AUID="'.$apparatus.'", `LOSAP Added By`="'.$losap_added_by.'", `Added On`=NOW()');
现在,我知道我需要切换到mysqli。这是在短期计划中
什么会杀死服务器?我曾与托管公司和他们的服务器似乎很好
我不完全确定这是否会导致内存问题,但每次运行这段代码时都会发生。所以,我相信这就是原因。任何想法都将不胜感激
[添加了更多代码]
$query = 'SELECT USER FROM member WHERE USER = "'.strtolower($user).'"';
$ck = squery( $query );
$num_entries = mysql_num_rows( $ck );
$row_person = mysql_fetch_assoc($ck);
$query = 'SELECT USER FROM call_member WHERE CUID='.$_REQUEST['CUID'].' AND USER = "'.strtolower($user).'" LIMIT 1';
$ck = squery( $query );
if( $num_entries == 1 && mysql_num_rows($ck) == 0 )
{
if( $num_entries == 1 )
{
$query = 'INSERT INTO call_member SET LOSAP="'.$row_person['LOSAP'].'", ccnumber ="' . $ccnumber . '", position="'.$position.'", CUID="'.$CUID.'", apparatus="'.$apparatus .'", `LOSAP Added By`="'.$user_added_by.'", `Added On`=NOW()';
$result = squery( $query );
}
else
{
print '<div>Error: Could not find a user number or unique person for "'.$user.'" or the person is not a current member.</div>';
}
}
您的squery方法:
函数squery($query)
应具有:
return $result;
最后。什么进程使用了这么多内存,mysql还是apache?昨天我在主机箱上运行“top”时,正在做这些事情。我们创建了多个php进程,其中有几个进程被删除了。我们需要查看您的代码来回答您的问题。此外,字段名中不应包含空格!它会引起各种各样的问题。下划线或连字符更好,我更喜欢下划线。因此,它可能不完全是mysql插件,而是与它和php有关,但网站的其余部分运行“良好”。这似乎就是代码的这一部分。你的squery方法应该返回结果还是输入错误?是的。确实如此。复制/粘贴没有找到它。
{
$result = mysql_query( $query );
print mysql_error();
}
return $result;