场景
平台需要运营数据报表支持运营,因为是平台初建,搭建大数据平台成本较大,故使用零时使用mysql做olap。需求大概单表每日千万,从一张mysql近3亿数据的表里面查询统计一个月的数据。制定营收、留存等每日环比数据报表。
配置
硬盘SSD 6核12g
数据量
每月单表大概生产3亿数据
测试sql
SELECT COUNT(1) FROM
t_app_events_ad_data WHERE
data_key = ‘R’ AND create_date > ‘20221105’
同时给data_key+create_date加入组合索引
使用innerdb查询统计时间大概2分59秒,如下图
图片:
使用myisam 查询统计时间大概1分41秒,如下图
如果是myisam统计全表数据,速度是非常快的,这个是myisam的优势,如下图
myisam统计20天环比报表,耗时大概14分钟多一点(中间连了另一张亿级数据的表),如下图。
总结:
很明显,亿级数据存储,myisam查询性能比innerdb快将近一倍,这应该是得益于myisam的存储结构,b+tree叶子存储的是指针。但是一个月生产3亿的数据用mysql查询是有些吃力的,需要做架构上的优化,不可能实时查询这个表,比如说按照大数据的尿性定期出一个报表,把结果保存在数据库表。或者用storm这样的框架实时统计。
我始终觉得初期olap是必要的,这是运营的保障,但olap初期没必要上啥大数据,过了一年半载数据量大了再说(主要是成本大)。大叔据技术比如说使用hive,其实架构可能也一样,定期出一份报表,保存查询结果展示。hive估计性能会更差点,时间估计会更久点,大爷我统计一个月3亿的数据用mysql可能也才15分钟,已经完全可以接受了。也可以用第三方平台,不过这个数据保存在第三方,不安全,而且也没有定制方便。这是一个架构演进升级的过程。
相关推荐
45-MySQL单表2000万数据查询慢解决方案1
04-MySQL-企业级数据表的基本操作,增删改查等基本操作
千万数据,方便测试,sql调优
本文实例讲述了MySQL 多表关联一对多查询实现取最新一条数据的方法。分享给大家供大家参考,具体如下: MySQL 多表关联一对多查询取最新的一条数据 遇到的问题 多表关联一对多查询取最新的一条数据,数据出现重复 ...
mysql快速导入百万级千万级数据 mysql快速导入百万级千万级数据 mysql快速导入百万级千万级数据 mysql快速导入百万级千万级数据 mysql快速导入百万级千万级数据 mysql快速导入百万级千万级数据
mysql最新三级省市区数据表
mysql数据库全文查找,查询所有数据库中包含指定字符的数据。 一、支持功能: 1、支持所有数据库查询字符串,或者指定一个或者多个数据库查询字符串; 2、支持本地使用或者指定远程数据库地址; 3、支持命令行指定...
mysql数据表模糊查询
全球主要国家数据表。mysql专用!适合php。全球主要国家数据表。mysql专用!适合php。
mysql-省市县-表结构+表数据,用mysql sql语句写的省市区信息代码,可以直接运行用哦
Mysql 百万级数据优化资料
Mysql百万级以上查询优化总结,,对mysql表优化、索引优化
vs2008C#操作Mysql创建数据库,数据表,增、删、改数据实例。
MySQL 中国省市区SQL表数据
Django2+ MySQL8 数据插入和查询 Django2+ MySQL8 数据插入和查询
Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql测试数据。Mysql...
帮助初学者了解酒店管理系统数据表的简单设计,详细了解mysql数据表的创建,及一些语法的使用方法。本文详细讲解了简单酒店管理的6张数据表的创建,非常适合初学者理解学习
MySQL数据库的创建、查看、删除、使用命令。 表结构创建和修改、表约束的创建和修改; 表数据的插入、删除和修改; 表联系的创建和修改。
domain/v1.0/module/method?order=condition&orderType=desc&offset=1800000&...分析其实对于我们的MySQL查询语句来说,整体效率还是可以的,该有的联表查询优化都有,该简略的查询内容也有,关键条件字段和排序字段该
练习题答案解决思路请查看本人原文章MySQL数据库多表查询练习题