[转]MySQL8 十大新特性
今天,让我们看一下MySQL8.0提升数据库管理员工作效率的十大改进。
从一大堆特性你们找出十点并不太容易,以下是这十大特性:
1.临时表的改进
2.持续的全局变量
3.取消默认MyISAM系统表
4.UNDO空间回收
5.UTF8性能改进
6.取消Query Cache
7.原子DDL
8.更快、性能更好的Schema和Information Schema
9.角色管理
10.加密表空间中的REDO日志和UNDO日志都将被加密
Life is short, Coding More!
今天,让我们看一下MySQL8.0提升数据库管理员工作效率的十大改进。
从一大堆特性你们找出十点并不太容易,以下是这十大特性:
1.临时表的改进
2.持续的全局变量
3.取消默认MyISAM系统表
4.UNDO空间回收
5.UTF8性能改进
6.取消Query Cache
7.原子DDL
8.更快、性能更好的Schema和Information Schema
9.角色管理
10.加密表空间中的REDO日志和UNDO日志都将被加密
曾经做过一个Html5的iPhone应用,应用一打开就是一个用webview加载的Html5的页面(现在Apple好像不让这么做了),当时送审这个App的时候,被Apple打回来了,原因是当网络不稳定或者断网离线的时候,App一打开就是个白页或者错误页,Apple绝不接受这种垃圾的用户体验。由于种种原因,我们暂时无法将App做成Native的,于是,我们开始考虑如何让一个Html5页面在断网离线时也能正常显示。
经过技术调研,我们找到了两个可以利用的技术:页面静态化和Html5的离线存储技术,将这两个技术结合,不但可以加速页面的访问速度,而且可以实现断网显示的效果。
程序员都喜欢最新的PHP 7,因为它使PHP成为执行最快的脚本语言之一(参考PHP 7 vs HHVM 比较)。但是保持最佳性能不仅需要快速执行代码,更需要我们知道影响性能的问题点,以及这些问题的解决方案。本文涵盖了保障PHP应用平稳高速运行的所有知识点,大量干货来袭,强烈建议收藏。
PHP是由拉斯姆斯·勒多夫于1995年开始开发的。起初,它只是勒多夫为了要维护个人网页,而用c语言开发的一些CGI工具程序集,我们从PHP这个缩写最初的来源“Personal Home Page”(个人主页)就可以看出这一点。然而,随着勒多夫不断地扩充它的功能,PHP逐渐成为了现在的“PHP:超文本预处理器”。
在过去的20年中,PHP的开发团队一直致力于提升PHP的性能,最引人瞩目的是于1999年引入的Zend语法解释器引擎。2000年发布的PHP 4,包含了一个內建的编译器和执行器模型,使得PHP开始有能力开发动态的Web应用。2015年PHP发布了里程碑式的版本PHP 7.0,极大的提升了Zend引擎的性能,并降低了PHP的整体内存使用率。截止到本文发稿为止,目前最新的PHP版本是7.1.4,有兴趣的话可以看看这篇文章PHP7 新特性,改变变化。
今天先是看到一篇讨论CC攻击的文章:Nginx防CC攻击,紧接着就有同学在群里问我关于防CC攻击的问题,巧吗?好巧!
什么是CC攻击?
CC攻击是DDoS攻击的一种类型,使用代理服务器向受害服务器发送大量貌似合法的请求(通常使用HTTP GET)。CC(Challenge Collapsar,挑战黑洞)根据其工具命名,攻击者创造性地使用代理机制,利用众多广泛可用的免费代理服务器发动DDoS攻击。许多免费代理服务器支持匿名模式,这使追踪变得非常困难。
本来看了上面那篇文章,觉得虽然写的很用心,还做了样本压测,但仅仅做基于IP的频率限制,从原理上来讲并不实用,为什么呢?其实,作者自己在文末也提到了。
虽然用limit_req_module可以在一定程度上的防止CC攻击,但是有误杀概率;国内宽带用户的IP地址已经大量内网化,几百人共享一个IP的可能性是很大的。
做基于IP的频率限制,误杀的概率确实非常大。在国内,一个小区、一个公司经常会遇到共用IP的情况,而移动网络共用基站的设备更是容易出现相同的公网IP。
墨菲定律第一条就是:任何事物都没有表面看起来那么简单。何况这个看起来一点都不简单,怎么可能只用IP频率限制这一种手段呢?对于CC攻击,其防御必须采用多种方法,而这些方法本质上也是在提高服务器的并发能力。
最近忙疯了,平均每天都加班到11点,甚至今天也在家为公司码了一整天的代码,对于我现在这份工作,周末也在家码代码的情况实在不多,只能说明最近真的很忙。今天看到好友TT的公众号谈到了“浮躁”,一下子让我思绪万千,所以今天我们不聊技术,静下心来看看周围的环境,看看自己的本心,理清思绪,砥励前行。
就我个人的见解,“浮躁”这个词已经不是某个人或者某些人的状态,而是这个时代的状态。由于我自己也常常陷入“浮躁”的深坑,无法自拔,让我偶尔也会不自觉的思考一个问题,这个时代的浮躁究竟是由什么引起的,又是从什么时候开始的,它是如何逐渐的影响每个人的?渐渐地,我找到了一些明悟。
加密不同于密码,加密是一个动作或者过程,其目的就是将一段明文信息(人类或机器可以直接读懂的信息)变为一段看上去没有任何意义的字符,必须通过事先约定的解密规则才能将信息转换回有意义的可读信息,通过加密可以防止非授权的信息窃取。
按照加密对象的不同,可以将加密分为:存储加密和传输加密。存储加密是指对存储在纸质、磁盘、数据库等介质上的数据进行的加密,而传输加密则是指对数据在计算机网络、电话、电报等通信信道上进行的加密。不管是上述哪种加密,本质上仍是对信息进行加密。
2014年,Martin Fowler 与 James Lewis 共同提出了微服务的概念,然后微服务就开始火遍大江南北,很多技术团队和公司开始使用微服务架构,然而,谁用谁痛谁知道,“微服务”绝对不是银弹。使用“微服务”架构一定要慎重!
什么是“微服务”?
“微服务”并没有严格意义上的定义和规范,借用一段维基百科上的描述:
微服务 (Microservices) 是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building Blocks) 为基础,利用模组化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关 (Language-Independent/Language agnostic) 的 API 集相互通讯。微服务架构运用于软件架构风格的其中一项概念是甘露运算 (Dew Computing),意指由许多的小露水 (代表微服务的功能元件) 汇集而成的运算能力。
作为一个具备用户交易能力的网站,丰富它的支付渠道对于获客和提高日活都有不可估量的积极作用。算起来,我接触过的支付系统也有几十个了,在这里总结一下我所接触过的支付系统对外接口的设计方案。
作为国内最大的支付平台,绝大多数网站都会与其对接,当之无愧是最常见的支付渠道,而很多其它小的支付渠道也是参考支付宝来设计其对外接口的,很具有代表性,其支付流程如下图:
图片为本人原创自制,部分内容参考Darker’s Blog,高清大图,建议:
1)在PC上查看;
2)如果在手机上查看,请点击图片,缩放
首先,我只在Mysql中做了测试,其它数据库各位读者如果有兴趣可以自己试试。
首先新建三张表:user、company、school。我们知道InnoDB引擎是支持事务的,而MyISAM引擎不支持事务,因此,在这里,我使用InnoDB作为user和school两个表的引擎,而使用MyISAM作为company的引擎。三个表结构很简单,数据类型什么的我就不放出来了,把表数据列在下面。