我有一个Mysql的数据库,每天大概增加1000W条数据,持续至少一年,有如下问题:

每天添加的数据量占硬盘空间多少? 用MyISAM压缩的情况下(压缩率大概24%?)
在一年后需要经常遍历访问,为追求效率,用哪种存储方式最好(有多台服务器的情况下)?
Mysql用哪个系统做服务器比较好?最好请说明原因。
我是搞研究的,最近开始接触数据库,需要大量分析数据。请多指教。谢谢。答得好继续追加。

首先这么大的数据量不建议使用MySQL这种免费版的数据库系统,可以使用Oracle等这种大型数据库系统,其对于数据库中数据的管理、查询等的效率要比MySQL好非常的多。
如果你一定要使用MySQL,其服务器操作系统最好使用Linux,也可以使用国产的红旗Linux。
如果数据库非常的海量,那么可以考虑使用刀片式服务器进行数据库集群模式,采用分布式的数据库系统,如此可以提高查询的效率。
既然你是搞研究的,那么对于这种巨量的数据库管理系统的数据分析可以采用SAS数据仓库来进行对数据进行分析。追问

非常感谢你的回答。依照你的经验,在如此海量数据下,用Linux+MySQL的效率和Linux+Oracle效率差距大吗?
我的程序是在前期收集数据时只写不读,分析时继续收集数据,但是对于所有数据经常的遍历读取,这种情况用什么样的储存结构比较好?
这是我个人研究,没有多少经费,希望能获得一个性价比最高的方案。对于你建议的SAS数据仓库,我很感兴
趣,虽然从未接触。请问有相关的文档链接可以提供吗?

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-11
每天1000W数据 几天mysql就完了 还想查询
这种优化属于系统性优化了 不是单纯数据库的问题
------------------------

下面给一下存储方面的建议 以优化性能
1、选取最适用的字段属性--将表中字段的宽度设得尽可能小。 在可能的情况下,应该尽量把字段设置为NOTNULL,这样在将来执行查询的时候,数据库不用去比较NULL值。
对于某些文本字段,例如“省份”或者“性别”,我们可以将它们定义为ENUM类型。因为在MySQL中,ENUM类型被当作数值型数据来处理,而数值型数据被处理起来的速度要比文本类型快得多
2、使用连接(JOIN)来代替子查询(Sub-Queries)
3、建立索引
4、常用关联表使用视图
注意:mysql删除大量数据时 有索引的表删除非常缓慢
------------------------
mysql对系统没啥具体要求
当然最好是windows的服务器
视图好 方便安装工具进行查询和错误排除
第2个回答  2013-10-10
1000万条记录,估计大于300M。
存储引擎效率当然选myisam。可以采用主从服务器(前提是业务需求实时性不高),主服务器用来增删改,从服务器用来查询。

也应该用分表技术。
对于常用的表,要每天进行更新视图,将访问高的记录通过视图查询。

操作系统用的多的是CentOS。追问

非常感谢你回答。业务读取实时性不高,但是写的实时性很高,每天1000W的写入,一段时间后再统一遍历查询分析,主从系统这样会不会很慢?

我有一个Mysql的数据库,每天大概增加1000W条数据,持续至少一年,有如 ...
首先这么大的数据量不建议使用MySQL这种免费版的数据库系统,可以使用Oracle等这种大型数据库系统,其对于数据库中数据的管理、查询等的效率要比MySQL好非常的多。如果你一定要使用MySQL,其服务器操作系统最好使用Linux,也可以使用国产的红旗Linux。如果数据库非常的海量,那么可以考虑使用刀片式服务器进行数...

java 向数据库添加大量数据时内存溢出 在不改变内存的情况下如何...
比如想将一个1000W数据的数据库表,导出到文件;此时,你要么进行分页,oracle当然用三层包装即可,mysql用limit,不过分页每次都会新的查询,而且随着翻页,会越来越慢,其实我们想拿到一个句柄,然后向下游动,编译一部分数据(如10000行)将写文件一次(写文件细节不多说了,这个是最基本的),需要注意...

php foreach循环输入insert数据库
你这种方式数据入库的话,1000w条数据,要连接1000w次数据库的,性能肯定是差的,因为建立一次数据库连接是开销很大的操作 数据库的插入是支持多条的啊 insert into 表(字段) values (值),(值2),(值3)这样就可以连接一次数据库,插入多条数据了,可以把1000w条数据分几组,这样连接数据库的次数会大大...

MySql 处理超大数据量 (分库)
100W我记不清楚了但是1000W的话直接查询效率肯定有问题的.但是要是你把SELECT语句写在存储过程里面,效率降低就很小了!所以所有的对数据库操作都尽量封装在存储过程里面.现在在做一个东西,昨天测了下2亿行数据,没什么问题- -效率降低维持在可以接受的地步.当然优秀的索引,缓存配置,调优之类的我就不说了...

几种MySQL大量数据插入或修改的方法比较
优化的方式有一下几种:(1)在每个insert语句中写入多行,批量插入(2)将所有查询语句写入事务中(3)利用Load Data导入数据每种方式执行的性能如下。Innodb引擎InnoDB 给 MySQL 提供了具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID ...

mysql 投资表 求累计满1000W的用户是哪个
找累计投资满3000的用户不是王五么?李四才2000呀?具体SQL如下:SELECT `name`, SUM(sal), MIN(datetime) FROM sal GROUP BY `name` HAVINGSUM(sal) >= 3000 ORDER BY MIN(datetime)已在我本地测试通过,效果如下:

数据库分为哪几种版本
初级应用一般是ACCESS 配合的脚本程序一般是 ASP ASP.NET JSPMICROSOFT SQL 比较复杂点 不过功能强大很多 配合的脚本和ACCESS的一样MYSQL和PHP的组合是比较完美的如果你需要处理1000W条数据以上级别的数据,那以上的都不合适,一般用的比较多的是ORACLE 这个入门难度非常大如果想学的话就先学MICROSOFT SQL吧,这个网上教...

mysql如何加快海量数据的删除速度?
mysql数据库导入数据的速度: 1、最快的当然是直接 copy 数据库表的数据文件(版本和平台最好要相同或相似);2、 设置 innodb_flush_log_at_trx_commit = 0 ,相对于 innodb_flush_log_at_trx_commit = 1 可以十分明显的提升导入速度;3、 使用 load data local infile 提速明显;4、 修改参数 bulk_insert_...

深入理解分布式事务,高并发下分布式事务的解决方案
2、分布式事务的产生的原因 2.1、数据库分库分表 当数据库单表一年产生的数据超过1000W,那么就要考虑分库分表,具体分库分表的原理在此不做解释,以后有空详细说,简单的说就是原来的一个数据库变成了多个数据库。这时候,如果一个操作既访问01库,又访问02库,而且要保证数据的一致性,那么就要用...

mysql百万数据分页查询4秒,求教怎么优化
大的分页偏移量会增加使用的数据,MySQL会将大量最终不会使用的数据加载到内存中。就算我们假设大部分网站的用户只访问前几页数据,但少量的大的分页偏移量的请求也会对整个系统造成危害。Facebook意识到了这一点,但Facebook并没有为了每秒可以处理更多的请求而去优化数据库,而是将重心放在将请求响应时间...

相似回答