#中子星软件运行环境#【#天津[地点]#中子星科技发展有限公司 】很多企业在选购了企业信息管理软件后,却发现不好用,甚至和电脑系统无法匹配,或者由于其占内存太大致使系统运行不够畅通,因此而导致购置的系统束之高阁,造成了资源的浪费,中子星软件的运行环境能够符合大多数企业的硬件以及软件配置,其运行环境如下:
应用服务器:遵循J2EE规范的J2EE应用服务器,如Weblogic, Websphere,JBOSS,Tomcat等。操作系统可以是Windows/Linux/Unix。
系统数据库服务器:可采用业界流行的关系型数据库,如Oracle, SQL Server, Sybase,MySQL等。操作系统不限,只要能安装相应的数据库即可。
客户端:客户端无需安装其它软件,只需浏览器即可,支持IE6.0以上、firefox、Netscape等,分辨率要求在800 X 600以上,推荐使用1024 X 768可以获得最佳的浏览效果。
硬件平台:服务器建议配置:CPU:Pentium 400以上,内存:2G以上,硬盘:40G以上。
天津中子星科技发展有限公司https://t.cn/A6ftZXpJ

#十周游乐园检票员[超话]#
红烧的晚安贴

晚安啦,检票员们,好友列表的宝子们,今天的晚安贴不分开两个啦[牛轰轰拥抱]

我在与mysql作斗争的同时,也在吃瓜,去看了小姐姐的全部微博,大为震惊,在当今法治社会之后,资本横行,我一时不知道如果没有这样勇敢的人,一些受到伤害的人们又要忍受多久的黑暗[泪][跪了]

会持续关注,因为她的勇敢和她所经历的不公[悲伤][牛轰轰拥抱]

再次晚安,列表的宝子们[牛轰轰拥抱]
最近不知道是不是耗子的问题,老是发不出去[悲伤][跪了]

#为什么MySQL数据量大了要分库分表#
在文章开头先抛几个问题:
(1)什么时候才需要分库分表呢?我们的评判标准是什么?
(2)一张表存储了多少数据的时候,才需要考虑分库分表?
(3)数据增长速度很快,每天产生多少数据,才需要考虑做分库分表?这些问题你都搞清楚了吗?相信看完这篇文章会有答案。

为什么要分库分表?首先回答一下为什么要分库分表,答案很简单:数据库出现性能瓶颈。用大白话来说就是数据库快扛不住了。数据库出现性能瓶颈,对外表现有几个方面:大量请求阻塞在高并发场景下,大量请求都需要操作数据库,导致连接数不够了,请求处于阻塞状态。SQL 操作变慢如果数据库中存在一张上亿数据量的表,一条 SQL 没有命中索引会全表扫描,这个查询耗时会非常久。存储出现问题业务量剧增,单库数据量越来越大,给存储造成巨大压力。从机器的角度看,性能瓶颈无非就是CPU、内存、磁盘、网络这些,要解决性能瓶颈最简单粗暴的办法就是提升机器性能,但是通过这种方法成本和收益投入比往往又太高了,不划算,所以重点还是要从软件角度入手。

数据库相关优化方案数据库优化方案很多,主要分为两大类:软件层面、硬件层面。软件层面包括:SQL 调优、表结构优化、读写分离、数据库集群、分库分表等;硬件层面主要是增加机器性能。SQL 调优SQL 调优往往是解决数据库问题的第一步,往往投入少部分精力就能获得较大的收益。SQL 调优主要目的是尽可能的让那些慢 SQL 变快,手段其实也很简单就是让 SQL 执行尽量命中索引。开启慢 SQL 记录如果你使用的是 Mysql,需要在 Mysql 配置文件中配置几个参数即可。

调优的工具常常会用到 explain 这个命令来查看 SQL 语句的执行计划,通过观察执行结果很容易就知道该 SQL 语句是不是全表扫描、有没有命中索引。select id, age, gender from user where name = '爱笑的架构师';返回有一列叫“type”,常见取值有:ALL、index、range、 ref、eq_ref、const、system、NULL(从左到右,性能从差到好)ALL 代表这条 SQL 语句全表扫描了,需要优化。一般来说需要达到range 级别及以上。表结构优化以一个场景举例说明:“user”表中有 user_id、nickname 等字段,“order”表中有order_id、user_id等字段,如果想拿到用户昵称怎么办?

一般情况是通过 join 关联表操作,在查询订单表时关联查询用户表,从而获取导用户昵称。但是随着业务量增加,订单表和用户表肯定也是暴增,这时候通过两个表关联数据就比较费力了,为了取一个昵称字段而不得不关联查询几十上百万的用户表,其速度可想而知。这个时候可以尝试将 nickname 这个字段加到 order 表中(order_id、user_id、nickname),这种做法通常叫做数据库表冗余字段。这样做的好处展示订单列表时不需要再关联查询用户表了。

冗余字段的做法也有一个弊端,如果这个字段更新会同时涉及到多个表的更新,因此在选择冗余字段时要尽量选择不经常更新的字段。架构优化当单台数据库实例扛不住,我们可以增加实例组成集群对外服务。当发现读请求明显多于写请求时,我们可以让主实例负责写,从实例对外提供读的能力;如果读实例压力依然很大,可以在数据库前面加入缓存如 redis,让请求优先从缓存取数据减少数据库访问。缓存分担了部分压力后,数据库依然是瓶颈,这个时候就可以考虑分库分表的方案了,后面会详细介绍。硬件优化硬件成本非常高,一般来说不可能遇到数据库性能瓶颈就去升级硬件。在前期业务量比较小的时候,升级硬件数据库性能可以得到较大提升;但是在后期,升级硬件得到的收益就不那么明显了。

分库分表详解
下面我们以一个商城系统为例逐步讲解数据库是如何一步步演进。
单应用单数据库
在早期创业阶段想做一个商城系统,基本就是一个系统包含多个基础功能模块,最后打包成一个 war 包部署,这就是典型的单体架构应用。如上图,商城系统包括主页 Portal 模板、用户模块、订单模块、库存模块等,所有的模块都共有一个数据库,通常数据库中有非常多的表。因为用户量不大,这样的架构在早期完全适用,开发者可以拿着 demo到处找(骗)投资人。一旦拿到投资人的钱,业务就要开始大规模推广,同时系统架构也要匹配业务的快速发展。多应用单数据库在前期为了抢占市场,这一套系统不停地迭代更新,代码量越来越大,架构也变得越来越臃肿,现在随着系统访问压力逐渐增加,系统拆分就势在必行了。

为了保证业务平滑,系统架构重构也是分了几个阶段进行。第一个阶段将商城系统单体架构按照功能模块拆分为子服务,比如:Portal 服务、用户服务、订单服务、库存服务等。如上图,多个服务共享一个数据库,这样做的目的是底层数据库访问逻辑可以不用动,将影响降到最低。多应用多数据库随着业务推广力度加大,数据库终于成为了瓶颈,这个时候多个服务共享一个数据库基本不可行了。我们需要将每个服务相关的表拆出来单独建立一个数据库,这其实就是“分库”了。单数据库的能够支撑的并发量是有限的,拆成多个库可以使服务间不用竞争,提升服务的性能。

如上图,从一个大的数据中分出多个小的数据库,每个服务都对应一个数据库,这就是系统发展到一定阶段必要要做的“分库”操作。现在非常火的微服务架构也是一样的,如果只拆分应用不拆分数据库,不能解决根本问题,整个系统也很容易达到瓶颈。分表说完了分库,那什么时候分表呢?如果系统处于高速发展阶段,拿商城系统来说,一天下单量可能几十万,那数据库中的订单表增长就特别快,增长到一定阶段数据库查询效率就会出现明显下降。因此,当单表数据增量过快,业界流传是超过500万的数据量就要考虑分表了。当然500万只是一个经验值,大家可以根据实际情况做出决策。

那如何分表呢?分表有几个维度,一是水平切分和垂直切分,二是单库内分表和多库内分表。水平拆分和垂直拆分就拿用户表(user)来说,表中有7个字段:id,name,age,sex,nickname,description,如果 nickname 和 description 不常用,我们可以将其拆分为另外一张表:用户详细信息表,这样就由一张用户表拆分为了用户基本信息表+用户详细信息表,两张表结构不一样相互独立。但是从这个角度来看垂直拆分并没有从根本上解决单表数据量过大的问题,因此我们还是需要做一次水平拆分。

还有一种拆分方法,比如表中有一万条数据,我们拆分为两张表,id 为奇数的:1,3,5,7……放在 user1, id 为偶数的:2,4,6,8……放在 user2中,这样的拆分办法就是水平拆分了。水平拆分的方式也很多,除了上面说的按照 id 拆表,还可以按照时间维度取拆分,比如订单表,可以按每日、每月等进行拆分。每日表:只存储当天的数据。每月表:可以起一个定时任务将前一天的数据全部迁移到当月表。历史表:同样可以用定时任务把时间超过 30 天的数据迁移到 history表。总结一下水平拆分和垂直拆分的特点:垂直切分:基于表或字段划分,表结构不同。水平切分:基于数据划分,表结构相同,数据不同。单库内拆分和多库拆分拿水平拆分为例,每张表都拆分为了多个子表,多个子表存在于同一数据库中。比如下面用户表拆分为用户1表、用户2表。

在一个数据库中将一张表拆分为几个子表在一定程度上可以解决单表查询性能的问题,但是也会遇到一个问题:单数据库存储瓶颈。所以在业界用的更多的还是将子表拆分到多个数据库中。比如下图中,用户表拆分为两个子表,两个子表分别存在于不同的数据库中。
一句话总结:分表主要是为了减少单张表的大小,解决单表数据量带来的性能问题。


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 新店开业福利SNOW51黑金卡或黑金周中卡有效期内会员,至HH上海兴业太古汇店,注册成为HH会员(或已是会员)即可领取:“滑雪三件套礼包一份”Helly Han
  • ——韩愈读书遇古人疑难大事,先须掩卷静思,如果处此,何以措置,然后看将下去,方知古人得失,学识方有长进。——李白在科学上面是没有平坦的大路可走的,只有那在崎岖小
  • 因为「忍」有这六个意义,所以「生忍」就是说,我们在世间「生活」需要有「忍」的力量与智慧,来认识、接受、担当、负责、化解人间的荣辱毁誉、百般事端,也能以此成就修
  • 有一天,朱元璋无事,便在自己的宫殿中四处走走,感慨之心油然而生,仰天感叹:“想我之前只想自己饱腹,做些抢银两的事,没成想会有今天的模样。很多人聪明,锋芒毕露,结
  • 看到吃的走不动(每次出门都这样嘻嘻)18张图,拼完发现都发不完碎片,剩下的明天发吧,分享快乐!#2022新年健身100天计划#第7⃣0⃣天♡天气: ♡地点:单
  • 现在NYR回来中国还又出新品了今天特地祭出了我的古早测评,真情实感了记录了当时我用NYR康复利面霜的效果想当年我还是容易长青春痘的干皮少女[笑cry]虽然已经不
  • 老君曰: “ 天地媾精,陰陽布化,萬物以生。承其宿業,分靈道一。父母和合,人受其生。始,一月為胞,精血凝也。二月成胎,形兆胚也。三月陽神為三魂,動而生也。四月陰
  • 大账户我在纠结,要不要每年做一次波段,主要a同学真的不靠谱啊,回撤真狠,想赚大钱很难B同学好多人说熊了,然后偷偷摸摸开多单[允悲]不过如果同样大跌是机会,b同学
  • #等什么君[超话]##向全世界安利等什么君##遇见等什么君# 春有夏花,夏有秋朝,秋有冬暖,冬有春窈,皆是这世间最美的风景,看过了浮云三月终不归,看过了四月人间
  • 我们院子里最多的两种鸟就是大喜鹊和小麻雀,邻居们经常把家里的小米撒在松树下,我下楼经常忘记拿,所以偶尔想起来就抓一把放窗户外窗台上,第二天早上就会被叽叽喳喳的鸟
  • 通过女王一周内的困境,拍的却是时代、世道人心的多重变迁。小小感悟:很庆幸现在自己身处一个有温度的团队,工作这么多年之后突然发现温度这个词在工作环境中有多么的重要
  • )ps:看了图上画抽出来的卡 千万不要打我!”张林顺说。
  • 冬奥项目与中华传统文化梦幻联动[鼓掌][鼓掌]】花滑与昆曲,同样的梦幻美丽;自由式滑雪与京剧空翻,同样的扣人心弦;钢架雪车与赛龙舟,同样的风驰电掣…当现代的冬奥
  • Khun Phi我们要经常见面呐,不管怎么说,我爱你呐krub❤️cr mewsuppasit礼貌抱图/快心酸酸,虽然我有时候也会看看喜欢年轻的爱豆,但是我的
  • #每日一善[超话]##阳光信用# #阳光信用# 一起保护大自然@百万森林 与社会携手做公益@微公益 关心小动物的生存@WWF你我世界自然基金会  关怀需要帮助
  • #总博主[超话]#感情淡了就散了吧,你永远叫不醒装睡的人,感情也一样人家已经对你没有了感觉,为啥还要死气白咧的讨好,这样讨好的感情就是一种卑微,与其卑微的感情,
  • !!
  • 需要了解各地正规机构,价格和案例的可以直接私我或者在线自助查询:#点这里就可以哟[2022]#华润医药宣布重磅合作# 近日,华润医药宣布与因明生物签署战略合作协
  • 至于为啥不能万粉丝和亿粉丝,比如你看图1和2,是真的粉丝上万,数量和粉丝名粘那么紧,要是真让那些粉丝量5位数以下的改成了,岂不是以假乱真看起来乱套了。#超话主持
  • 农历二月廿一乙亥日 ★★★★★这天为三合日,又有天贵、天喜和天医等吉神莅临。如果宅主属龙,则不宜使用,原因是辰戌相冲,冲生肖龙。