当前位置: 主页 > 动态资讯 > 新手学堂 >

此次大数据处理反反复复的一共花了接近一个月的时间,所以如果您也正在为MYSQL大库发愁,希望同情阅读。

记录一次MYSQL大数据去重删除分区优化索引.

先说mysql的单表最大,,其实是可以很大的,官方给出的是

MySQL表最大能达到多少?

MySQL 3.22 限制的表大小为4GB。由于在MySQL 3.23 中使用了MyISAM 存储引擎,最大表尺寸增加到了65536TB(2567 – 1字节)。由于允许的表尺寸更大,MySQL数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由MySQL内部限制决定的。

InnoDB 存储引擎将InnoDB 表保存在一个表空间内,该表空间可由数个文件创建。这样,表的大小就能超过单独文件的最大容量。表空间可包括原始磁盘分区,从而使得很大的表成为可能。表空间的最大容量为64TB。

现在的问题是,如果你的硬件不怎么样,你打算单表做的很大,那是不行的,,,基本上行不通,数据大了打开直接卡死,或者写入数据也会存在问题。一单出现什么问题或者要处理什么,那是致命的痛苦。

营口软件开发公司对服务器硬件进行了调试,用了三台不同配置的机器进行了测试。

mysql 单表 60G数据,分了20个分区。

处理一次增加索引,相当于打开全部数据一次。

数据库在SSD 和 机械盘下的表现相差悬殊,有条件的朋友还是建议您使用SSD盘。

营口IDC给你贴出来MYSQL的查询删除去重代码

查询出重复的所有数据
select * from sl_ciphertext_wp
where ciphertext in (select ciphertext from   sl_ciphertext_wp group by   ciphertext having count(ciphertext) > 1) limit 0,1000;

这种是可以查询出来重复的数据,限制显示条数,有效的能解决数据太大,打开时间长,导致卡死的问题。


查询出重复的所有数据
select * from sl_ciphertext 
where ciphertext in (select ciphertext from   sl_ciphertext group by   ciphertext having count(ciphertext) > 1);
 
表中有id和name 两个字段,查询出name重复的所有数据
select * from sl_ciphertext_wp_new_1 a where (a.ciphertext) in (select ciphertext from sl_ciphertext_wp_new_1 group by ciphertext having count(*) > 1) limit 0,1000;

还有一个很好的去充办法:

INSERT IGNORE INTO sl_ciphertext_wp_new SELECT * FROM sl_ciphertext_wp group by ciphertext limit 0,10000000;

新建一个一样架构的表,然后用上面的代码执行,可以进行写入去重

事实上MySQL 能承受的数据量的多少主要和数据表的结构有关,并不是一个固定的数值。表的结构简单,则能承受的数据量相对比结构复杂时大些。

据D.V.B 团队以及Cmshelp 团队做CMS 系统评测时的结果来看,MySQL单表大约在2千万条记录(4G)下能够良好运行,经过数据库的优化后5千万条记录(10G)下运行良好。那么为什么国内的某些CMS厂商还会把其产品自身负载差的责任推给MySQL呢?

这对于MySQL是不公平的,那些CMS厂商非但没有把内核做好反而还在添加很多花哨的功能,最终导致其产品自身负载过低。他们并没有针对自身负载效果作出相应的数据库优化方案及标准,而是继续保留着复杂的结构造成对MySQL的资源无休止的浪费,最终导致了其负载上的缺陷,于是他们便充分发挥中国人的传统优势——变通:避重就轻的采用了所谓的分表式存储,虽然在一定程度上缓解了自身负载的缺陷,但是导致了网站后期维护以及资源上的浪费,这样做是否是长久之计呢?虽然他们解决了眼前的问题,但以后呢?难道想无休止的分表来达到目的?

用一个不恰当的比喻来形容,MySQL中的的表就像一块地,单表就相当于利用这块地盖高层建筑充分利用达到高人员负载,但分表就相当于用这块地盖了一间平房,如果为了达到高人员负载的话那就需要另开地皮达到目的,但是我们要思考,是地不够,还是他的能力不够,如此做法让人感到资源的浪费以及规划的严重缺陷。

那么对于这样的CMS系统,有谁敢用?难道为了达到让其良好的运行而无休止的更换着服务器配置么?况且大多情况下一台服务器中不是只有这么一个网站,那么我们就要思考,我们是否是为了满足这么庞大的小CMS 而掏腰包。

建议某些CMS 厂商改善自己的产品,让用户更好的获益。否则,还有谁敢去选择你们的产品呢?


 

(责任编辑:科派云)

关键词: 优化 数据库 MySQL 索引 删除 分区 去重

上一篇:【教程】网站栏目设置,网站建设第一步!

下一篇:熊岳企业形象网站设计开发-品牌宣传特点