ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql-正在运行一个分析网站…1个繁重插入操作与多个简单选择和插入操作

2019-12-08 05:14:18  阅读:199  来源: 互联网

标签:logging analytics reporting mysql database


目前,我的数据库设计尚未标准化.

当用户访问网站时,将存储所有数据,例如完整的浏览器名称,操作系统名称等.这导致数据库以每天约10GB的速度快速增长,每天只有200万人(每天200万次插入).但是,这仅意味着每个数据只有一个插入.我正在使用mysql和php.

现在我想知道如果对数据进行归一化是否会更快.我的意思是为OS名称和OS ID,浏览器名称和浏览器ID创建单独的表.然后使用流量日志表中的ID.
在这种情况下,将在浏览器表和os表中进行两次查找以查找ID,如果不存在,则在流量日志表中进行两次插入,然后再进行一次插入,分别使用浏览器ID和os ID.因此,有2个选择和2个潜在插入和1个设置插入.

哪一个可能更快.对于基于文件的方法,还有其他选项可用于存储os等,或者将所有可能的浏览器,os都存储在数组中,然后仅在访问者具有其中一个浏览器或os的情况下才插入,否则仅将其放在其中.

解决方法:

您实际上是在讨论速度与空间的关系.与将大量批量数据插入单个表相比,更复杂的表结构可能会慢一些.在这种情况下,通常认为牺牲一点速度来降低数据库大小的增长速度是适当的;用您描述的方式对表格进行规范化应该可以提供这种折衷.

此外,将数据拆分为多个表并进行交叉引用将使您以后可以更轻松地对数据进行查询,例如是否确定要对网站用户进行分析.

标签:logging,analytics,reporting,mysql,database
来源: https://codeday.me/bug/20191208/2089240.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有