百万行mysql数据库优化和10G大文件上传方案

最近这几天正在忙这个优化的方案,一直没时间耍,忙碌了一段时间终于还是拿下了这个项目?项目中不要每次都把程序上的问题,让mysql数据库来承担,它只是个mysql而已。

问题1:针对MySQL Community5.5+版本优化业务执行速度,提高整体系统效率

测试服务器硬件环境:Intel Core i5,8gb内存,7200rpm硬盘,Win7专业版

Table名称

读取频率

写入频率

最低连续读取速度

最低连续写入速度

预估数据量

C….

频繁

不频繁

30行/150ms

100行/s

百万行

D…

频繁

不频繁

30行/150ms

100行/s

百万行

De…..

频繁

不频繁

30行/150ms

10行/s

万行

St……

频繁

不频繁

30行/150ms

100行/s

百万行

S……

频繁

频繁

30行/150ms

100行/s

百万行

Pr...

很频繁

不频繁

1000行/s-5000行/s

100行/s

百万行/表

De…….

很频繁

频繁

1000行/s-5000行/s

1000行/s

百万行/表

De……

很频繁

频繁

1000行/s-5000行/s

1000行/s

百万行/表

看到这个想到的是拆分表,不外乎就是表的纵向拆分和横向拆分,我在项目中也遇到过类似的问题,当时也是使用mysql数据库当时大概列数有800多,mysql数据一张表的字段是不能有800多个,最开始测试的是用String 按照JSON的格式存入的数据库,结果发现处理时加入了循环,反而使系统性能变得很慢导出一个Excel也是很吃力的,最后采用分表大概分了9张,解决了问题,其实现在想想是不是使用对象的序列化,将序列化的对象存入数据库呢,使用在从数据库中取出来反序列化使用,当时分表后满足了需求就没再测试对象的序列化的方法了。但是这次给的需求不需要纵向拆表,是否需要横向拆表呢?测试一次先,每次的点子都是要测试的e。

有些时候在mysql中还是要善用limit,

除开主键其余没加索引,这样上了百万条的数据查询应该是不存在问题,话不多说优化SQL吧。

但是插入还是存在问题,是否需要分表呢?如果只是上百万还是可以不用分表的,如果分表就要处理好分页查询,删除和增加的操作,我还是喜欢使用Mysql数据的同步,使用两个mysql数据库,服务器ip分别为ip1和ip2,我们将ip1作为Master数据库,把ip2作为slave服务器,我们可以采用单项同步的方式,就是Master的数据是主数据,然后slave主动去Master哪儿同步数据回来,太晚了,明天测试通过就可以开始优化项目了。

在数据库中数据在100w多行时插入数据耗时2.822秒的时间,

问题2:大文件上传居然有这样的要求,

档案大小

Action

最大执行内存占用

内网最低传输速率(802.11g)

50mb

Upload

5mb

1mb/s

500mb

Upload

5mb

1mb/s

5gb

Upload

5mb

1mb/s

10gb

Upload

5mb

1mb/s

50mb

Download

5mb

1mb/s

500mb

Download

5mb

1mb/s

5gb

Download

5mb

1mb/s

10gb

Download

5mb

1mb/s

以前遇到过一个视频网站上传要求也是最大4G左右,这次居然要上传最大的有10G,

为提高大文件传输速率,将目标文件分成N块文件,对应启动N个线程通过TCP/IP协议来传 输,传输文件前先检查是否存在该文件的临时文件群,如果存在找出其断点位置进行续传,最后合并文 件。异步分割发送,用目前最主流的FLASH+AJAX技术。ActionScript和HTML5是支持SOCKET通讯的,呵呵。

实现流程:

1 客户端向服务端发送传递文件启动信号(发送文件名字)

2 服务器检查是否包含有该文件所对应的临时文件(eg, 传输file.txt,就检查是否存在temp[i]file.txt,(i为 第N块临时文件)),如果存在就发送所有临时文件的断点位置给客户端

3 客户端更具文件大小将文件分为N块(每块默认大小为500M,可通过参数进行配置)以加快传输速率, 然后根据服务器返回的断点位置(如果有)对每块文件进行移位,移动到断点位置进行续传,如果服务器 上没有临时文件夹,就进行普通的传送文件

4当所有线程工作完成,合并所有临时文件夹。

大文件上传的问题已经实现使用的是serverlight实现的。测试通过了大概是5-6M每秒。

 
 

百万行mysql数据库优化和10G大文件上传方案的更多相关文章

  1. 百万行mysql数据库优化(补充)

    我上大学的那个时候喜欢研究一些数据库的技术,那时候觉得数据处理很重要,而且数据优化也是相当重要的,看了很多数据库方面的资料,虽然在实际的项目也遇到过一些数据库优化的任务,完成之后还是有些心情愉快.但是 ...

  2. web大文件上传(web应用---SSH框架)

    版权所有 2009-2018荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...

  3. 大文件上传插件webupload插件

    版权所有 2009-2018荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...

  4. 使用百度webuploader实现大文件上传

    版权所有 2009-2018荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...

  5. 突破大文件上传 和内网ip的端口转发

    php上传大于2M文件的解决方法 2016年12月11日 :: katelyn9 阅读数 php上传大于2M文件的解决方法 如上传一个文件大于2m往往是上传不成功的解决方法: php.ini里查找 查 ...

  6. js实现大文件上传分片上传断点续传

    文件夹上传:从前端到后端 文件上传是 Web 开发肯定会碰到的问题,而文件夹上传则更加难缠.网上关于文件夹上传的资料多集中在前端,缺少对于后端的关注,然后讲某个后端框架文件上传的文章又不会涉及文件夹. ...

  7. 使用webuploader实现大文件上传分片上传

    本人在2010年时使用swfupload为核心进行文件的批量上传的解决方案.见文章:WEB版一次选择多个文件进行批量上传(swfupload)的解决方案. 本人在2013年时使用plupload为核心 ...

  8. java大文件上传解决方案

    最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...

  9. java+大文件上传解决方案

    众所皆知,web上传大文件,一直是一个痛.上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的. 本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路. 实现文件夹 ...

随机推荐

  1. js 控制radio选项

    <input type="radio" name="rk" value="aaa" />1<input type=&quo ...

  2. 红米1S Mokee4.4.4 本人编译版耳机线控改动调音量以及上下曲方法

    改动的文件为,用Re管理器编辑: system/usr/keylayout/msm8226-tapan-snd-card_Button_Jack.kl 默认的耳机线控的上下键是切换上下曲功能,因此此文 ...

  3. 【 D3.js 入门系列 --- 9.6 】 生产的包图

    我的个人博客是:www.ourd3js.com csdn博客为:blog.csdn.net/lzhlzz 转载请注明出处,谢谢. 打包图( Pack ).用于包括与被包括的关系,也表示各个对象的权重, ...

  4. VBOX安装Centos设置分辨率为1366x768[已解决]

    最近想了解下GTK+,但是对于直接在系统上搭建环境有点心里阴影,怕又把桌面玩挂,所以打算在虚拟机中先试试 本来打算使用Fedora的,怕gnome太吃资源所以下了个xfce的,不过貌似有BUG,无法安 ...

  5. CSS3 实现六边形Div图片展示效果

    原文:CSS3 实现六边形Div图片展示效果 效果图: 实现原理: 这个效果的主要css样式有: 1.>transform: rotate(120deg); 图片旋转 2.>overflo ...

  6. .Net中批量更新或添加数据

    方法一:使用SqlBulkCopy实现批量更新或添加数据. SqlBulkCopy类一般只能用来将数据批量插入打数据库中,如果数据表中设置了主键,出现重复数据的话会报错,如果没有设置主键,那么将会添加 ...

  7. Office文档在线编辑的实现之二

    讲述了如何通过iis的webdav支持实现客户端的office直接编辑服务器上的文件,本篇将讲解如何实现客户端的office直接编辑数据库中的二进制形式保存的office文件. 实现的关键:模拟IIS ...

  8. C#编程实践–帮老婆计算产假方案

    摘要 今天中午午休时,和老婆聊天,老婆还过几天就要请产假了,她在网上问我让我帮她数一下该怎么请假最划算,老婆是个会过日子的人,面对此种要求我当然义不容辞,不过想到这个问题我的第一反应是:这个怎么可以用 ...

  9. 从Http它被连接到WebSocket

    1.HTTP协议长期-fi支持和各支持的浏览器 http://blog.csdn.net/fenglibing/article/details/7100222 2.WEBclient与服务端信息交互的 ...

  10. jquery插件推荐

    jQuery 是继 prototype 之后又一个优秀的 Javascript 框架.其宗旨是—写更少的代码,做更多的事情.它是轻量级的 js 库(压缩后只有21k) ,这是其它的 js 库所不及的, ...