大数据量的插入以及查询该怎么处理和优化

问题描述

公司准备研发新的产品,有一批量导入商品变更数据的功能,不同用户每天可能会批量插入很多数据,初步评估每天大概会新增20W条记录,现在考虑使用mysql数据库,但又怕数据量大了后不好处理,或运维成本变高。

问题出现的环境背景

  • 数据都属于同一类型,所以现在考虑是存储在一张表,和其他表没有关联,有点类似日志,但属于业务数据,至少近期半个月的不能丢失
  • 数据插入没有事务,允许单条插入失败
  • 用户主要的功能是导入数据
  • 有分页读取数据的功能,但不是重点,主要是用于用户查看导入结果
  • java,springboot,nodejs开发

求教各位大佬,数据库的选择及优化的建议,谢谢

阅读 5.6k
3 个回答

每天 20w 的数据对于 MySQL 压力并不大,如果用 Spring Boot,推荐最好使用原生 SQL 的方式批量导入,如:

insert into tb_logs values(row1),(row2)...

其中 (row1),(row2)... 可由程序生成,这样比单条 SQL 插入速度会快很多。
同时,如果后期发现单表数据量太大,还可以考虑分表。

这种类似日志的数据,建议使用MongoDB存储或ElasticSearch存储。

在补充楼上@fonxian,还可以搭个集群读写分离

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题