MySQL 5.7 缩小空间占用实践

某几个数据表越来越大,占用空间快达4T, 其中很多数据都是历史数据,可以被清空的数据。现在想要缩小空间,则需要:

  1. 删除表中的数据
  2. 重构表,因为删除数据并不会回收占用的空间,需要重构才行
  3. 删除和重构不能影响正式服务
  4. 重构的目的是为了缩小空间占用,但重构需要2倍的空间,但运服务器的空间扩大后,就无法缩小
  5. 不能直接在正式数据库进行操作

方案

  1. 搭建主从,使用Docker搭建
  2. 在从服务器上进行删除(需要写专门的删除逻辑)
  3. 在从服务器上,扩大硬盘大小至2倍,然后复制一份新表,把旧表删除,把新表重命名为旧表
  4. 从服务器上暂停同步,且停止数据库。添加一块容量为原硬盘大小一半的新的云盘,把数据从原硬盘使用rsync复制到新盘。这一步要特别注意,因为数据库特别大,使用rsync复制可能需要的时间非常长,我这边花了一天多的时间才复制完成。所以,主服务器上的binlog需要保存至少5天的时间,如果正式服务业务量比较大,存放binlog的硬盘需要有足够的容量。
  5. 把新盘做为mysql的盘,启动从服务,开始与主服务器进行数据同步,直到同步完成。
  6. 当同步完成后,在业务量很低的时间里,停止主服务器,对主数据盘做好快照,然后把从服务器上硬盘挂载的主服务器,让主服务器从这块新挂载的硬盘上启动
  7. 检查测试,确保数据和功能逻辑一切正常
  8. 释放主服务器老硬盘,完成缩容,释放空间的目的。

三个有启发的学习方法

首先是一个国外开发者的小故事。

他刚入行时,在一家小公司工作。公司只有很少几个工程师,但是每个都很强,了解很多技术,前端、后端、系统维护都能上手。

而且,他们的开发效率极高,别的公司可能花一两个月才能做出的东西,他们几天就能搞出来。不了解内情的客户,很以为他们是一个很大的技术团队,但是其实不到10个人。

有一次,这位开发者跟同事单独相处,忍不住就问了,你们的开发效率怎么这么高?

同事解释说,团队的骨干工程师在一起合作多年了,彼此都很了解。他们以前都为军方的情报部门工作,开发军事软件。

军方的计算机是不能连网的,他们的开发环境完全不能上网,所以干活很痛苦。如果他们想在网上查一些软件资料,必须步行到军营外面的另一栋大楼。因此,上网查资料变成了一项成本很高的操作。

他们被逼无奈,只能仔细通读软件手册,把所有重要的内容都做了笔记,尽量记住。久而久之,上网查资料的次数越来越少,知识积累在脑海里,开发效率就这样提高上去了。

这个小故事想讲的道理就是,看似最笨的学习方法—-笔记和记忆力—-偏偏造就了最高的开发效率。

现在写笔记的人并不多,愿意背诵的就更少了。网上搜索一下就有答案,为什么还要记录和背诵呢?但是别忘了,只有烂熟于心的东西,你才能真正做到运用自如、手到擒来。

更重要的是,互联网只提供查找知识的能力,不提供处理知识、提取结论的能力。当你需要分析、推理、判断的时候,脑海里记得的东西是最容易想到的。记得越深,就越容易投入应用、与新知识结合在一起。

这里的启示就是,笔记和记忆力远比我们认为的重要得多。它们不仅可以提高使用效率,还有助于将新知识集成进入我们现有的知识储备。

(二)

后面两个学习方法,都跟诺贝尔奖得主、传奇物理学家理查德·费曼有关。

大部分物理学家只精通自己的领域,但是费曼几乎涉及所有物理学领域,而且能够很通俗地进行科普,他的讲义《费曼物理学讲座》是物理学入门名著,社会知名度很高。

有一次,别人问费曼,如何才能获得新的科学发现?

费曼说:”如果没有对旧事物进行大量练习,你不太可能发现新事物。”

费曼的意思是,新的科学发现都建立在前人研究的基础上,你越熟悉以前的研究,就越可能做出新的发现。

同理,新技术也是建立在旧技术的基础上。如果你想找到新的解法,或者真正掌握一门新技术,首先就应该多了解现有的技术方案。

(三)

那个人又问费曼,你懂那么多物理学知识,你的学习秘诀究竟是什么?

费曼说:”要想多学,就必须能在学习中得到快乐。做到这一点的唯一方法,就是努力学习你最感兴趣的东西。

没有人有足够动力,长期学习自己不喜欢的东西。如果你不喜欢某个领域,就不可能不断投入时间钻研,也就不可能做到精通。

费曼就是在告诉我们,如果可以选择,一定要学习自己喜欢的东西,否则你不仅很可能失败,也许还会抑郁。

向毛泽东学开会

开会必须解决问题,必须有实效,而不能只走形式。

1960年3月,毛泽东主持召开华东区各省省委书记会议,讨论农业生产问题等。在毛泽东看来,党委对该做的工作一定要“抓紧”。“什么东西只有抓得很紧,毫不放松,才能抓住。抓而不紧,等于不抓。伸着巴掌,当然什么也抓不住。就是把手握起来,但是不握紧,样子像抓,还是抓不住东西。我们有些同志,也抓主要工作,但是抓而不紧,所以工作还是不能做好。不抓不行,抓而不紧也不行。”毛泽东自己“看准的事情,一旦下决心要抓,就抓得很紧很紧,一抓到底,从不虎头蛇尾,从不走过场”。

怎样抓得紧呢?工作布置下去,不能认为就完成了。毛泽东说:“全面规划,几次检查,年终评比,这是三个重要方法。”其中,“打电报、打电话、出去巡视这些方法,也是很重要的领导方法”;“一年至少检查四次”。通过检查,督促进展,修正错误。 1948年2月,他在谈到工商业政策的时候说:“必须随时掌握工作进程,交流经验,纠正错误,不要等数月、半年以至一年后,才开总结会,算总账,总的纠正。这样损失太大,而随时纠正,损失较少。……随时提醒下面,使之少犯错误。这都是领导方法问题。”也就是说,无论干什么工作,都要干到底,不见成效决不罢休。

发扬民主和“抓紧”工作的一个重要内容,就是开好各种会议。党委会行使职责的一个重要形式就是开会。党的各级机构和各种组织,“都必须建立健全的党委会议制度,一切重要问题(当然不是无关重要的小问题或者已经会议讨论解决只待执行的问题)均须交委员会讨论,由到会委员充分发表意见,做出明确决定,然后分别执行。地委、旅委以下的党委亦应如此。高级领导机关的部(例如宣传部、组织部)、委(例如工委、妇委、青委)、校(例如党校)、室(例如研究室),亦应有领导分子的集体会议”。日常工作中,“有了问题就开会,摆到桌面上来讨论,规定它几条,问题就解决了”。

开会要事先通知,像出安民告示一样,让大家知道要讨论什么问题,解决什么问题,并且早作准备。“在会议之前,对于复杂的和有分歧意见的重要问题,又须有个人商谈,使委员们有思想准备,以免会议决定流于形式或不能做出决定。”有些地方开干部会,事前不准备好报告和决议草案,等开会的人到了才临时凑合,“兵马已到,粮草未备”,这是不好的。开会的方法应当是材料和观点的统一。如果没有准备,就不要急于开会。

  开会时,不要照本宣科,要充分发挥参会人员的作用。先把报告草稿发下去,请到会的人提意见,加以修改,然后再作报告。报告的时候不是照着本子念,而是讲一些补充意见,作一些解释。这样,就更能充分地发扬民主,集中各方面的智慧,对各种不同的看法有所比较,会也开得活泼一些。

每次会议时间不可太长,会议次数不可太频繁,不可沉溺于细小问题的讨论,以免妨碍工作。此间,讲话、演说和写决议案,都应当简明扼要。“凡是看不懂的文件,禁止拿出来。”“每次会有一个主题,其他问题也吹一下。开会的时候吹吹闲话,引起兴趣,接触问题。”

  党的委员会须分别为常委会和全体会两种,不可混在一起。同时,要大型、中型和小型会议相结合。这三种会议一般指的是群众大会、干部大会和领导班子会,把工作干好就得学会开这些会。“小型会议最好商量问题,我对小型会议很有兴趣,时间不长,就地召开,这种形式最好。”

  党的决策要开会,政策的执行也要开会,开会是一种日常的基本的工作方法。毛泽东之所以不厌其详地讲如何开会,主要是让人明白,开会必须解决问题,必须有实效,而不能只走形式。在实际工作中,既要反对决策时把党委会变成一言堂,更要反对执行时以会议落实会议。其最大的功效就是能够把内部充分动员起来,为一个明确的目标而奋斗。

关于公司运营

公司首要的一个点,就是要有业绩,业绩哪里来?来自于产品, 来自于服务,来自有价值的服务,为别人解决难题、提高效率、减少时间、创造价值;各行各业所有的商业服务都是围绕服务他人来开展的, 只不过形式不一样,呈现方式不一样。我们当前做产品,做互联网产品, 要把上述核心思想一直常记脑海。

但,你有了上面满足这些必要条件的产品后,你真的能赚钱吗?因为信息的差异,你不确定你当前提供的服务是否为真实客户所需要的,假如是真实客户所需要的, 那他们知道你的存在吗?他们能轻松找到你的产品吗?

但,假如你的产品有市场需求, 你也打了大量的广告,别人能找到你的产品, 你的产品真的能产生收益吗?你的产品能够让普通小白理解吗?他们能轻松上手吗?他们会觉得你的产品好用吗?他们能喜欢上你的产品, 他们愿意花时间在你的产品上吗?他们愿意帮你推广吗?

但,假设上面的所有都存在,都足够好,你觉得你的产品能长久吗?别人不会抄吗?别人不会比你更便宜吗?你的产品能长期可持续吗?

运营一个公司,打造一个产品, 它是一个艰难的过程,当前我深深的体会到了这点;现在有一个拿得出手的产品, 占有了一些市场, 但这只是开始;你不仅要做好产品, 运营好,还要管理好公司的人事、财务;管理好公司的文化、战略;一个人完全忙不过来。

一个很直接的想法,招人, 把专业的事情交给专业的人去做;想法很好, 但很多事情不是完全能放手的, 比如说招人,小公司很难招人, 一个是因为业务刚起, 业绩不是特别的好,如果花大价去招人,公司的财务就会非常紧张,如果一旦有风吹草动,有很大可能性会发不出工资;另外,假设有足够的预算去招人,你确定就能招到好的人才吗?人家愿意过来吗?经过我这些年的经验,很多人都愿意去大公司,甚至是低于市场价,只为去渡个金,何况,大公司给的钱只多不少, 我们小公司很难比得上人家;所以,在招人这个事情,你要不断的过滤,不断的面试;假如你有专职的HR专业在负责招人,很多时候他们都只是在常规的几个求职平台上刷一下简历,简单的沟通,叫过来面试的人质量参差不齐,会浪费你大量的时间。不过这些时间都是值得的!

所以,做为创业者,你要做的事情包括但不限于: 产品推进(新产品研发、老产品更新)、运营推广、人力资源、业务业绩、财务、公司内部管理(培训、活动)等;经常性会有人来问你, 这个要怎么处理、哪个要怎么决定、另一个要怎么选择,现在的我,总感觉事情太多,太杂,完全没有把时间放在重点上。

那么,哪些才是重点?公司要发展,先要业绩 ,要业绩就得有好产品,就得有好人才;所以, 人才招聘是第一件大事,保证有能力的人留在公司,找到有能力的人补充进来,不断的发挥价值,创造输出;其次是打造好的产品,一个好的产品自带推广属性,一个好的产品可以自我销售;通过有效的人力资源整合,打造出一个或多个能持续输出的好产品,是很重要的一件大事, 其他的诸如都可以完全的交给专人去负责。