#为什么MySQL数据量大了要分库分表#
是这样的。随着用户量的激增和时间的堆砌,存在数据库里面的数据越来越多,此时的数据库就会产生瓶颈,出现资源报警、查询慢等场景。
首先单机数据库所能承载的连接数、I/O及网络的吞吐等都是有限的,所以当并发量上来了之后,数据库就渐渐顶不住了。再则,如果单表的数据量过大,查询的性能也会下降。因为数据越多 B+ 树就越高,树越高则查询 I/O 的次数就越多,那么性能也就越差。因为上述的原因,不得已就得上分库分表了。把以前存在一个数据库实例里的数据拆分成多个数据库实例,部署在不同的服务器中,这是分库。把以前存在一张表里面的数据拆分成多张表,这是分表。一般而言:分表:是为了解决由于单张表数据量多大,而导致查询慢的问题。大致三、四千万行数据就得拆分,不过具体还是得看每一行的数据量大小,有些字段都很小的可能支持更多行数,有些字段大的可能一千万就顶不住了。
分库:是为了解决服务器资源受单机限制,顶不住高并发访问的问题,把请求分配到多台服务器上,降低服务器压力。顺着这个思路,再接着追问几个常见面试题。你们一般怎么分库的?一般分库都是按照业务划分的,比如订单库、用户库等等。有时候会针对一些特殊的库再作切分,比如一些活动相关的库都做了拆分。因为做活动的时候并发可能会比较高,怕影响现有的核心业务,所以即使有关联,也会单独做拆分。
那你觉得分库会带来什么问题呢? 首先是事务的问题。我们使用关系型数据库,有很大一点在于它保证事务完整性。而分库之后单机事务就用不上了,必须使用分布式事务来解决,而分布式事务基本的都是残缺的(我之前文章把分布式事务汇总了一波,后台搜索分布式事务就有了)。这是很重要的一点需要考虑。 连表 JOIN 问题在一个库中的时候我们还可以利用 JOIN 来连表查询,而跨库了之后就无法使用 JOIN 了。此时的解决方案就是在业务代码中进行关联,也就是先把一个表的数据查出来,然后通过得到的结果再去查另一张表,然后利用代码来关联得到最终的结果。这种方式实现起来稍微比较复杂,不过也是可以接受的。还有可以适当的冗余一些字段。比如以前的表就存储一个关联 ID,但是业务时常要求返回对应的 Name 或者其他字段。这时候就可以把这些字段冗余到当前表中,来去除需要关联的操作。那你们怎么分表的?分表其实有两种:垂直分表水平分表垂直分表,来看个图,很直观:
垂直分表就是把一些不常用的大字段剥离出去。像上面的例子:用户名是很常见的搜索结果,性别和年龄占用的空间又不大,而地址和个人简介占用的空间相对而言就较大,我们都知道一个数据页的空间是有限的,把一些无用的数据拆分出去,一页就能存放更多行的数据。内存存放更多有用的数据,就减少了磁盘的访问次数,性能就得到提升。水平分表,则是因为一张表内的数据太多了,上文也提到了数据越多 B+ 树就越高,访问的性能就差,所以进行水平拆分。
其实不管这些,浅显的理解下,在一百个数据里面找一个数据快,还是在一万个数据里面找一个数据快?即使有索引,那厚的书目录多,翻目录也慢~那分表会有什么问题?垂直分表还好,就是需要关联一下,而水平分表就有点麻烦了。 排序、count、分页问题如果一个用户的数据被拆分到多个表中,那查询结果分页就不像以前单张表那样直接就能查出来了,像 count 操作也是一样的。只能由业务代码来实现或者用中间件将各表中的数据汇总、排序、分页然后返回。像 count 操作的结果其实可以缓存下来,然后每次数据增删都更新计数。
路由问题分表的路由可以分:Hash 路由范围路由路由表Hash 路由,其实就是选择表中的某一列,然后进行 Hash 运算,将 Hash 运算得到的结果再对子表数进行取模,这样就能均匀的将数据分到不同的子表上。这跟 HashMap 选哪个桶是一样的原理。优点就是数据分布均匀。缺点就是增加子表的时候麻烦,想想 HashMap的扩容,是不是得搬迁数据?这个分表也是一样的,我们可都知道,数据迁移一件麻烦事!范围路由,其实很简单,可以是时间,也可以是地址,表示一定的范围的即可。比如本来一张 User 表,我可以分 User_HZ、User_BJ、User_SH,按照地名来划分 User。再比如 log 表,我可以将表分为 log_202103、 log_202104,把日志按照年月来划分。优点就是相对而言比较容易扩展,比如现在来个 GZ,那就加个 User_GZ。如果到了 5 月,那就建个 log_202105。缺点就是数据可能分布不均匀,例如 BJ 的用户特别多或者某个月搞了促销,日志量特别大,等等。路由表,就是专门搞个表来记录路由信息,来看个图就很清楚了。
从图中我们就能得知,UserID 为 2 的用户数据在要去 User_3 这个用户表查询。优点就是灵活咯,如果要迁移数据,直接迁移然后路由表一改就完事儿了~缺点就是得多查一次,每次查询都需要访问路由表,不过这个一般会做缓存的。 全局主键问题以前单表的时候很简单,就是主键自增,现在分表了之后就有点尴尬了。所以需要一些手段来保证全局主键唯一。还是自增,只不过自增步长设置一下。比如现在有三张表,步长设置为3,三张表 ID 初始值分别是1、2、3。 这样第一张表的 ID 增长是 1、4、7。第二张表是2、5、8。第三张表是3、6、9,这样就不会重复了。UUID,这种最简单,但是不连续的主键插入会导致严重的页分裂,性能比较差。分布式 ID,比较出名的就是 Twitter 开源的 sonwflake 雪花算法,具体就不展开了,不然就又是一篇文章了,简单点利用 redis 来递增也行。
那上面说的路由问题的 Sharding-Key 如何设计呢?我们分表是按照某个列来拆分的,那个列就是 Sharding-Key,查询的时候必须带上这个列才行。例如上面提到的 log_202103,那表明查询条件一定得带上日期,这样才能找到正确的表。所以设计上得考虑查询的条件来作为 Sharding-Key。举个常常会被问的订单表 Sharding-Key 例子。你想着查找订单的时候会通过订单号去找,所以应该利用订单 ID 来作为 Sharding-Key。但是你想想,你打开外卖软件想查找你的历史订单的时候,你是没有订单 ID 的,你只有你的 UserID,那此时只能把所有子表都通过 UserID 遍历一遍,这样效率就很低了!所以你想着那用 UserID 来作为 Sharding-Key 吧!
但是,商家呢?商家肯定关心自己今天卖了多少单,所以他也要查找订单,但他只有自己的商家 ID,所以如果要查询订单,只能把所有子表都通过商家 ID 遍历一遍,这样效率就很低了!所以 Sharding-Key 是满足不了所有查询需求的,只能曲线救国。一般做法就是冗余数据。将订单同步到另一张表中给商家使用,这个表按商家 ID 来作为 Sharding-Key,也可以将数据同步到 ES 中。一般而言这里的数据同步都是异步处理,不会影响正常流程。

关于低吸的一些思路分享

打板 趋势和低吸
熟悉我的都知道我最主要的操作就是做低吸
所以今天说下我的低吸思路
希望能有用

简单点
低吸需要每天做的功课最主要的有
研究龙虎榜
然后两市的涨停板和成交量排名需要天天维持观察

龙虎榜是判断介入资金的强弱
比如三峡能源很强
但龙虎榜都是东方财富西藏散户大军
那么后面即使技术面形态很好也只能放弃
再比如物产中大涨上去的逻辑不在了(重组)
龙虎榜里看到大佬止损出局了都
也没必再去低吸

看涨停板
尤其三板以上的 一定要加自选
大概率都会有回踩均线的反抽机会

至于按成交量去看
这里操作的低吸主要就是趋势股的低吸
也唯有爆成交量的趋势股才值得低吸

这些是简单的逻辑

然后低吸
趋势股的低吸正常在30日均线开始
60日均线上下可重仓

涨停高度板 或者龙头 妖股的低吸
正常在5日线就可以观察
10日线可低吸 20日均线可重仓
一旦击穿30日均线就要降低预期 做好止损出局的准备

最后叠加大盘说些
一只连续涨停的高位票开始打开涨停震荡
均线多头发散越厉害越好
遇到大盘很强势
不要怕高 果断可以追涨

同样
大票如果超级弱势
只要分时图还是维持很强

也是可以追涨

大概这些
有人可能会觉得有些玄或者“就这”


就是这么简单
再问
就是盘感

后面坐了对叔叔阿姨,大概意思就是买了站内中转,但是中转站台被占用进京二次安检,完后阿姨提出三条解决方案:1尝试站内中转,不行就退票去机场;2直接退票去机场;3进站再出站,时间实在不赶趟,不推荐
那个大叔吭吭唧唧不同意也不否认也不吱声,似乎还透露着一丝抵抗(老子就要出站再进,搭两张票也要哼)旁边的盆友都表示看不下去要替阿姨说话
我寻思阿姨这思路清晰逻辑分明言语恳切态度真诚,咋就摊上这个大叔[疑问]
大家还是简单点,有啥话都说出来,女人真难


发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 有奶茶店因为先说“欢迎光临”而不是“请扫码”就被查封,有人则因为在店内睡觉时没戴口罩而被处罚——这些“防控措施”不仅是无效的,更会在客观上加剧人们的恐惧心理。回
  • 二、本地疫情 11月7日0—24时,我市新增本土确诊病例3例(其中无症状感染者转确诊2例)新增本土无症状感染者32例,无新增本土疑似病例。二、本地疫情:11月
  • 2016年是作手新一提升的关键时刻,当初市场哀鸿遍野,他对于市场行情期待也不是很高,因此并没有放到股市里,当初盈利只有50%。作手新一的解释就是策略上一直沿用自
  • 我们可以从毕加索在1927年直至30年代的诸多有关形式创新的实验作品中辨认出这位“缪斯”的形象:画面中由平行线组成的头发(图1)、玛丽-特蕾莎姓名首字母的缩写“
  • 月亮可以为我作证,我向它传了很多想你的简讯星星醉酒到处跑,月亮跌进深海里,我以前从未觉得人间如此美好,直到你来了好好生活,慢慢爱你 不早不晚,刚好是你由于对眼前
  • 7. 马配虎羊狗,夫妻相敬最完美,日子富裕久长在,子孙寿禄更夺魁。2. 牛配鼠蛇鸡,天赐良缘好夫妻,人旺财盛家境好,儿女百年多长久。
  • ✨#刘宇宁一念关山# ✨#刘宇宁宁远舟# ✨#摩登兄弟[超话]# ❀━━━━━♡ℒ ♥━━━━━❀ 我喜欢你的笑 阳光而温柔 仿佛这世界都变成了甜的
  • 【万余枚冷冻胚胎十年无人问津 医院:新胚胎几乎无处可放】(健康时报记者 赵苑旨)“这些胚胎大多是患者成功怀孕后续存的,现在胚胎主人基本是失联的状态,医院资源有限
  • —— 老舍《四世同堂》大城市与小地方的本质区别王永山财富自由频道表面看,大城市财富多、机会多、节奏快、压力大,小地方虽然机会少,但基本也能吃穿不愁,只要没有过高
  • #鼻综合##罗勇隆鼻案例##罗勇聊隆鼻[超话]# 一起拆快递时间来唠唠最近花钱买来的快乐和用了有一段时间的好登西们~p1:这个月很喜欢的涂抹面膜,可以根据自己的
  • 骑电动自行车时选择合格头盔并全程戴好,是给安全多一道防线,也是对自己的生命和家人负责。骑电动自行车时选择合格头盔并全程戴好,是给安全多一道防线,也是对自己的生命
  • “每天都会有一个幸运的小橘蛋 直到张老师回来的那一天”每日抽奖第32天(已开奖) 全员抽奖 抽一个高露洁牙膏漱口水加轨迹书签 点赞即可 不用评论不用转发不用关注
  • 累了一下午 不知道是嘟宝长心眼了还是今天干妈来看嘟了。2018年03月22日(四)爱嘟宝的姥爷走了~回想一下,早在前年妈妈怀着嘟宝的时候,爸爸在老家盖房,姥爷就
  • 而且,相对于买车,感觉买个几十万的东西回来就贬值有点沙雕,不如攒着继续买房,还可以当包租公~最让我着急的是,父母年真的不是狠人,都是老老实实在体制内熬出来的。反
  • ——高尔基“每个人都会有缺陷,就像被上帝咬过的苹果,有的人缺陷比较大,正是因为上帝特别喜欢他的芬芳。——高尔基“每个人都会有缺陷,就像被上帝咬过的苹果,有的人缺
  • 别等老了自己后悔,抗老紧致护肤套让你今年30明年28.#苎萝夜话# 很喜欢一句台词:“你回过头来看看就会发现,你的每个经历、每次错误、每次失败,都帮助你走向了你
  • #日行一善[超话]#[微风]#阳光信用# 还记得最早喜欢你时,在地球的另一端,翻来覆回听你的语音百遍落日、微风、鸟叫、虫鸣,是夏天最舒服的组合了会对我突然愧疚吗
  • 幸运只是生命的一种偶然,遇见谁,都会灿烂,得之,亦喜,错之,不悲,生命之花,都会凋零,只是,有的,艳丽多点,有的,凋零早点。失去时也不要过于悲伤,不是你的,终会
  • 但番位居然是文乃-广濑姊-NNO-沈影后-大岛优-阿姨-江口(叔算是压轴出演性质)不管怎么说,这种团结一心开挂群像剧都好棒生怕有人不知道的热知识:编剧代表作是《
  • 目前各个属性都定了一张主卡并且都升到80级了,副卡已有的也升到80了,目前典雅主卡秦衣升满复苏,打算下一张养迷宫的秦衣,清新搭配赛叶苏夏复苏,墨丘利61不知道该