小编Joh*_*ohn的帖子

在每个页面视图上插入数据库行

我正在研究一个需要在MySQL表中保存页面每个视图的日志的系统.仅当访问者在过去24小时之前未访问该页面时,才会记录该视图.我想知道在性能和数据库大小方面这样做是否会成为一个问题.

需要这样做的网站平均每天有大约60,000个独特的综合浏览量,因此每天大约增加60,000个新行(每2秒不到1个).该表仅3列:i_id,ip_address,timestamp.i_id是另一个表的外键.

该表将在每天结束时使用CRON脚本清除.

这样做会不会立即造成数据库紧张?例如,如果网站流量激增(它经常发生),它可以在一天内拍摄超过200,000次网页浏览量,这意味着每秒超过2次查询.

php mysql

4
推荐指数
1
解决办法
715
查看次数

仅当记录尚不存在时才INSERT INTO查询

在我的表中,我有两个字段:v_idip_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作为参数传入也是如此.

有人知道吗?谢谢.

mysql sql insert-into

3
推荐指数
2
解决办法
1527
查看次数

取消设置空数组元素

我正在使用$_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数组元素的合理方法?

php arrays unset

2
推荐指数
1
解决办法
1457
查看次数

单个语句中的两个select语句

我基本上有两个叫做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

我可以使用两个查询,但我正在尝试减少我的应用程序运行的查询,我知道有一种方法可以将它组合成一个查询,但我只是不知道它:<

有人知道答案吗?谢谢!

sql select join

2
推荐指数
1
解决办法
3034
查看次数

标签 统计

mysql ×2

php ×2

sql ×2

arrays ×1

insert-into ×1

join ×1

select ×1

unset ×1