我正在研究一个需要在MySQL表中保存页面每个视图的日志的系统.仅当访问者在过去24小时之前未访问该页面时,才会记录该视图.我想知道在性能和数据库大小方面这样做是否会成为一个问题.
需要这样做的网站平均每天有大约60,000个独特的综合浏览量,因此每天大约增加60,000个新行(每2秒不到1个).该表仅3列:i_id,ip_address,timestamp.i_id是另一个表的外键.
该表将在每天结束时使用CRON脚本清除.
这样做会不会立即造成数据库紧张?例如,如果网站流量激增(它经常发生),它可以在一天内拍摄超过200,000次网页浏览量,这意味着每秒超过2次查询.
在我的表中,我有两个字段:v_id和ip_address.我想仅在IP地址尚不存在时才将一些数据插入此表.
谷歌之后我遇到了INSERT IGNORE INTO声明,这是我的代码:
public function update_visits($ip_address)
{
$sql = 'INSERT IGNORE INTO `24h_visits` (ip_address) VALUES (?)';
if($this->db->query($sql, array($ip_address)))
{
return TRUE;
}
return FALSE;
}
Run Code Online (Sandbox Code Playgroud)
它运行正常且没有错误,但是仍然会生成重复的行,即使将相同的IP作为参数传入也是如此.
有人知道吗?谢谢.
我正在使用$_FILES,有时由于我的表单上的空文件输入,数组有空数组元素.我试图取消这些元素.
我试过这些代码片段:
foreach($_FILES['images']['name'] as $image)
{
if(empty($image))
{
unset($image);
}
}
foreach($_FILES['images']['name'] as $image)
{
if($image == "")
{
unset($image);
}
}
foreach($_FILES['images']['name'] as $image)
{
if(!$image)
{
unset($image);
}
}
Run Code Online (Sandbox Code Playgroud)
但是数组总是带有空元素.实际上是否有一种使用PHP删除空$ _FILES数组元素的合理方法?
我基本上有两个叫做images和的表users.该images表包含以下字段:
i_id | s_id | u_id | name | filename |
u_id是表中u_id字段的外键users,其中包含以下字段:
u_id | username | password | email |
我正在运行这样的查询:
SELECT s_id, u_id, name, filename, filesize FROM images WHERE name = 'fYhWId'
u_id除其他外,这将返回用户的内容.但我想返回用户的用户名,而不是他们的u_id.所以基本上,在SELECT语句中,我也想运行:
SELECT username FROM users WHERE u_id = 1
我可以使用两个查询,但我正在尝试减少我的应用程序运行的查询,我知道有一种方法可以将它组合成一个查询,但我只是不知道它:<
有人知道答案吗?谢谢!