我们的数据库还在设计阶段。我们预计数据量将会很大,一年的时间里,一张表,就会产生100亿条数据,表结构,如下id,userid,createddate,等等正常情况下,100亿条记录如果都存在一个表里,那么如果通过userid来查寻一定很慢。所以,请教各位在查询的性能优化上,表结构,数据库结构,有什么好的建议,用mysql实现,是否合适?提示,业务需求中的一个特性是:每个用户都有一个userid,用户只会查自己的数据,不会查看别人的数据。谢谢各位。

===========================================================================

所有的优化都包含两方面,技术的优化和需求的优化。单表100亿肯定不是一个好做法。即使每条只有1k,总的也差不多有10T,再考虑到备份,更复杂了。mysql单表也不支持10T数据。有一个办法,是根据日期创建新的表插入数据。另外在需求优化方面,可以是只查询近期的数据,那样速度最快。如果要查询历史数据,就单独做一个接口。

===========================================================================

我很好奇什么应用能在一年达到100亿的数据?还要用MySQL?简单的优化方法是分两个表存储,最近一段时间(如3个月)放在一个表里,其他放在历史表里,一般只查询第一个表。

===========================================================================

从硬件入手可以采取1、最简单的提升性能的方法就是提升硬件,增加硬件的投入效果立竿见影,不过这个主要是是投资方的可接受成本问题了。一般的来说从硬件方面的投资主要是购买大型机RS9000,购买磁盘柜(同时也是高可用的需要),增大内存。这些都可以提升系统的速度。2、从软件方面来说首先应该尽量使用64位的数据库,同时数据库应当建立在裸设备上。3、对于亿级别的数据通常是历史数据,而百万以及千万级别的数据通常是交易数据,这两种确实有很大区别,历史数据多为了读取,交易数据通常是可修改的,在建立索引的时候要考虑插入的问题。4、通常有表分区功能的数据库就不需要在设计上进行分表设计,只有在数据库系统不提供该功能的时候才会采用分表设计。分区要建立在不同的磁盘上以提升IO性能。从软件架构和业务层面1.使用SNA进行缓存如:memcached和sina的memcachedb;2.ORMapping(如hibernate)的session缓存和线程级别缓存;3.使用“领域模型驱动”的分析设计方法分析业务;这里关键是"领域模型驱动设计",因为性能之所以优化,而不是提升,是因为总有一天优化不下去;只有领域逐渐清晰才可能使系统具有伸缩性;

===========================================================================

100亿条记录如果都存在一个表里,这样的速度mysql肯定是要被摒弃,就算oracle也吃不消这样的数据量,你这一张表就吃掉N多dbf。建议把表结构分拆吧,比如说你查询可以做一个联合查询接口或视图,该视图可以通过多张users表演化而来,先前的user表被拆分成若干表,对常用用户的表单独处理,对不常用的用户会定时通过程序进行数据转移,当然oracle的索引是少不了的,不过从根本上看这么大的数据量的表设计就有问题,或许从整个项目的构架上去考虑,重新设计才能正确解决这张表的性能问题。

===========================================================================

楼上的回答都可以参考一下如果在mysql上只是提供查询功能,是否可以这样:建立总表,存放历史所有数据,再根据时间,比如2个月或者1个月一个表建立分表,如果只查询某个人的信息的话,查询分表就好了,要是进行统计的话,对总表进行操作,看情况增加缓存功能

===========================================================================

100亿数据量大了,mysql单表好支持不了都少。如果不拆分数据,只能用分区来存储了,查询的优化就不说了。

===========================================================================

分表吧...你看你的100y数据是否都需要查询或者调用..如果对查询不是很高...可以做bigfile放弃数据库存贮..靠文件流和偏移量读取..

===========================================================================

mysql不合适,数据太大了!考虑一下创建物理索引

===========================================================================

兄弟,你只有做分表了.你可分成10000张表,把数据拆分开,平均放到这些表中,这样每张表相当于100万条数据,我想应该很快的.分表的具体方法我们可以再讨论

===========================================================================

Mysql一张表有100亿才很快的话oracle早就关门了oracle有100亿也吃不消的你可以分到多张表里 比如按月来分

===========================================================================

只能分拆表

mysql一张表100亿条数据_一个表有100亿条记录,如何优化相关推荐

  1. php提交多条数据,tpphp一个表单提交多个需要循环的数据怎么处理

    就像图里面有三个需要提交的数据,一次性可能有多条或者一条,后台怎么来处理呢? 只有一个form 数据都在一个form里面,还是说需要一条数据一个form呢? 回复讨论(解决方案) 提交跳转页面可以提交 ...

  2. mongodb添加多条数据_分析了一万多条拼车数据,看看北上广深的各位都回哪过年...

    快过年了,很多同学都踏上了返乡的路.现在交通这么发达,除了高铁飞机外,还可以搭顺风车回家.今天的这篇文章我们就来分析一下拼车数据,看看今年大家都回哪儿过年. 分析了一万多条拼车数据,看看北上广深的各位 ...

  3. insert into 多条数据_最全总结 | 聊聊 Python 数据处理全家桶(Sqlite篇)

    点击上方"AirPython",选择"加为星标" 第一时间关注 Python 技术干货! 1. 前言 上篇文章 聊到 Python 处理 Mysql 数据库最常 ...

  4. 1亿条数据如何分表100张到Mysql数据库中(PHP)

    来源:http://www.jb51.net/article/70265.htm 这篇文章主要介绍了当数据量猛增的时候如何把一亿条数据分表100张到Mysql数据库中,需要的朋友可以参考下 下面通过创 ...

  5. php 分表 实战,PHP实战:1亿条数据如何分表100张到Mysql数据库中(PHP)

    <PHP实战:1亿条数据如何分表100张到Mysql数据库中(PHP)>要点: 本文介绍了PHP实战:1亿条数据如何分表100张到Mysql数据库中(PHP),希望对您有用.如果有疑问,可 ...

  6. mysql 5000万条数据库_1亿条数据如何分表100张到Mysql数据库中(PHP)

    下面通过创建100张表来演示下1亿条数据的分表过程,具体请看下文代码. 当数据量猛增的时候,大家都会选择库表散列等等方式去优化数据读写速度.笔者做了一个简单的尝试,1亿条数据,分100张表.具体实现过 ...

  7. 如何给mysql表添加百万条数据_给mysql一百万条数据的表添加索引

    直接alter table add index 添加索引,执行一个小时没反应,并且会导致锁表:故放弃该办法,最终解决办法如下: 一.打开mysql 命令行客户端 这里我们那可以看到导出的数据文件所存放 ...

  8. insert into 多条数据_「数据库」一千行MySQL命令

    基本操作 /* Windows服务 */-- 启动MySQL net start mysql-- 创建Windows服务 sc create mysql binPath= mysqld_bin_pat ...

  9. php mysql 插入多条数据_雷林鹏分享:PHP MySQL 插入多条数据

    使用 MySQLi 和 PDO 向 MySQL 插入多条数据 mysqli_multi_query() 函数可用来执行多条SQL语句. 以下实例向 "MyGuests" 表添加了三 ...

最新文章

  1. HDU3068 最长回文
  2. 使用header发送状态代码
  3. mysql 创建临时表 时间类型_MySQL问答系列之什么情况下会用到临时表
  4. .net开发笔记(十三) Winform常用开发模式第一篇
  5. windows添加删除程序打不开解决方案
  6. pdf sdk for android,Android 自带PDF SDK
  7. python元祖切片_Python
  8. 11gR2conceptes Memory Architecture中文翻译
  9. R语言绘制流程图(一)
  10. 04.Unity ShaderGraph序列(Lightweight Pipeline相关扫盲)
  11. Python实现借助聚合数据API接口生成某一年的节假日对照表
  12. PowerApps 中的 Filter、Search 和 LookUp 函数
  13. 基于神经网络的车牌识别系统
  14. 防范WiFi探针嗅探敏感数据的保护方法
  15. babaliuliu游戏视频--选择1号角色初体验
  16. jQuery源码解析(架构与依赖模块)第一章 理解架构
  17. cadence allegro - PCB设计规范
  18. 【Java MySQL】 009 JDBC
  19. 少年歌行游戏一直显示连接服务器,少年歌行第二季无法上线的原因找到了,不是没做好,而是限制太多...
  20. MYSQL UDF提权

热门文章

  1. 揭开中本聪的真实身份?这只是杀毒软件之父疯狂人生中的一件小事
  2. R系银河麒麟配置本地镜像源
  3. Helm安装Harbor
  4. 安卓中发短信的几种方式总结和实现
  5. Vue3中的setup前加上async后页面不显示
  6. 基于Php门禁系统设计与实现
  7. python中write什么意思_python file write () 方法概括及作用分析(实例)
  8. angularjs controller中使用filer
  9. 手机影像内卷几时休?
  10. GitHub使用——官网指南