加载页面太长 - 分析系统

时间:2014-05-19 10:57:34

标签: php jquery mysql sql database

我想问你有关我自己的分析系统的建议。 到目前为止,我的系统收集所有点击并将它们保存在SQL数据库中。

分析的第一部分。

SQL数据库logs如下所示:

+----+----------------------+-------------+---------------------------------------------+----------------+--------------+----------+
| id | time                 | address     | address_to                                  | ip             | resolution   | id_guest |
|----+----------------------+-------------+---------------------------------------------+----------------+--------------+----------|
| 1  | 2013-12-03#14:31:35  | index.php   | https://www.youtube.com/watch?v=6VJBBUqr1wM | 89.XX.XXX.6    | 1366x768     | 6        |
| 2  | 2013-12-03#14:48:21  | file.php    | https://www.youtube.com/watch?v=0EWbonj7f18 | 89.XX.XXX.6    | 1366x768     | 6        |
| 3  | 2013-12-03#16:16:55  | contact.php | https://www.youtube.com/watch?v=_o-XIryB2gg | 178.XX.XXX.140 | 1920x1080    | 11       |
| 4  | 2013-12-03#16:21:32  | index.php   | https://www.youtube.com/watch?v=z0M96LyTyX4 | 178.XX.XXX.140 | 1920x1080    | 11       |
| 5  | 2013-12-03#16:44:32  | movies.php  | https://www.youtube.com/watch?v=cUhPA5qIxDQ | 178.XX.XXX.140 | 1920x1080    | 11       |
+----+----------------------+-------------+---------------------------------------------+----------------+--------------+----------+

每次点击都会作为新记录添加到数据库中。

我网站上的所有电影都在SQL数据库的第二个表格中(电影):

+----+----------------------+-------------+---------------------+
| id | name                 | address     | tags                |
|----+----------------------+-------------+---------------------|
| 1  | 2013-12-03#14:31:35  | 6VJBBUqr1wM | bass,electro,trance |
| 2  | 2013-12-03#14:48:21  | 0EWbonj7f18 | electro,house,new   |
| 3  | 2013-12-03#16:16:55  | _o-XIryB2gg | electro,party,set   |
| 4  | 2013-12-03#16:21:32  | z0M96LyTyX4 | trance,house,new    |
| 5  | 2013-12-03#16:44:32  | cUhPA5qIxDQ | techno,new,set      |
+----+----------------------+-------------+---------------------+

一切都完美无瑕。在数据库中,我拥有用户查看的所有电影,我想要精确定义,所以记下IP +分辨率。

第一个问题: 这是确定用户的好方法吗?

-

分析的第二部分。

现在我想使用收集的日志和基于浏览材料的电影显示界面。 我为进入网站的用户选择数据库中的所有日志。 从日志中我选择标识符胶片并在表components中扫描它以获取日志并放入数组中。例如,ID = 6的用户将拥有一个数组:

array(
    [0] = > bass,
    [1] = > electro,
    [2] = > trance,
    [3] = > electro,
    [4] = > house,
    [5] = > new
);

现在我将按照最常出现的顺序对数组的内容进行排序:

array(
    [2] = > electro,
    [1] = > bass,
    [1] = > trance,
    [1] = > house,
    [1] = > new
);

根据数组的内容可以显示可能感兴趣的用户视频。

一切都很完美,但我现在才发现的问题...... 在表logs中,我有超过450万条记录。你可以想象,搜索如此大量的记录需要花费很多时间,进入网站有时会持续长达10秒......

我希望我的英语很差。

请提出如何通过加载页面解决此问题的任何建议。

1 个答案:

答案 0 :(得分:0)

  1. 在需要的地方使用索引,很难确切地告诉你在哪里 - 你没有显示任何查询 - 基本上你想在WHERE部分查询和JOINS中都有索引列。您不必索引大多数时间保持相同的列 - isloggedin,isadmin,language or

  2. 为您需要搜索的数据创建搜索表 - 例如,如果您需要知道首选解决方案或用户访问过网站的次数,您可以创建一个cron作业来解析所有用户和商店的数据它在搜索表中。如果需要,还可以使用它来进行一些统计。对于这些代码,您可以使用user_idtagcount

  3. 的表格
  4. 如果您只需要上次访问的网站,最后一个分辨率,...只需为此创建一个表格,您可以为每个用户存储和更新一行