StephenChan's Tech Space 潜心修炼

28Apr/100

MySQL索引基础

看完《High Performance MySQL》前三章了,本来是计划上周总结一下的,但是硬要拖到现在。虽然只比《深入浅出MySQL》多了20+RMB,但是技术含量高太多了。前面三章讲的内容都算是比较琐碎和基础,第二章介绍的基准测试和性能分析工具有时间要去用一下。前两天还想着不总结的,因为都比较基础,但是这两天review了一下,有一些有意思的东西我觉得还是要写下来好点,不能给自己太懒。

MyISAM的索引是直接指向存储的数据行的物理位置,而InnoDB则是指向primary key,即是对于InnoDB而言,Key 'im_a_index' (id)这样的索引,其索引的数据里面指向的不是数据行的物理位置,而是数据行的primary key,因此使用索引查询其实会产生两次查询,首先是在索引里面获取查询数据的primary key,然后再通过primary key查询到真正的数据。因此,也出现了一个概念叫"Covering Index",这个不是什么新鲜的概念," An index that contains (or covers) all the data needed to satisfy a query is called a covering index. ",正是由于InnoDB要二次查询数据行的原因,covering index就让所有使用这个索引查询的数据都放在索引里面,对于"select * from table_name where ..."这些要获取所有列的数据,那么就肯定会用不上这个covering index的好处了。当然,covering index也并不是鼓励所有的查询都新建一个index来体验covering index的好处,太多的index不但会使索引占用的容量增大难以维护,而且也会使update、delete、insert的成本提高很多,具体还是要看项目数据的需求而定,何况,一个数据访问量不大的小项目,就觉得没有什么必要了。对于B-Tree索引,应用索引除了要遵循leftmost prefix之外,在第一个range condition后面的列都不会应用到索引的,其实也就是索引会匹配这样的(equality, equality, range)这样的条件,但是在(equality, equality, range, equality, range..)这样的条件下,在第一个range后面的都不会享受到index的待遇。

Filed under: MySQL Continue reading
25Apr/100

zz Kerberos简介

Kerberos协议:

Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。由于在每个ClientService之间建立了共享密钥,使得该协议具有相当的安全性。

条件

先来看看Kerberos协议的前提条件:

如下图所示,ClientKDC KDCService 在协议工作前已经有了各自的共享密钥,并且由于协议中的消息无法穿透防火墙,这些条件就限制了Kerberos协议往往用于一个组织的内部, 使其应用场景不同于X.509 PKI

kerberos1

Filed under: Tools Continue reading
25Apr/100

zz SSH协议基础

SSH的英文全称为Secure Shell,是IETF(Internet Engineering Task Force)的Network Working Group所制定的一族协议,其目的是要在非安全网络上提供安全的远程登录和其他安全网络服务。 我们可以简单理解为:Rlogin和Telnet等的替代方案。SSH的使用场景如下图所示,具体请参考下文SSH的框架。

ssh_useage

Filed under: TCP/IP Continue reading
12Apr/100

zz 架构师接龙:岳旭强 VS. 杨卫华

主持人

冯大辉,阿里巴巴集团旗下支付宝 (中国)网络科技有限公司数据库架构师,负责支付宝数据库架构规划、解决方案等相关工作。

提问嘉宾

岳旭强淘宝网资深架构师,在大型交易网站的设计和调优方面有丰富的经验。2004年加入淘宝,见证了淘宝网业务以及技术上完整的发展过程,参与了淘宝几乎所有核心系统改造,并主导了用来支撑淘宝网未来高速发展的核心业务中心的建设。现在负责网站整体业务架构的设计和规划。

回答嘉宾

杨卫华新浪产品事业部技术经理,专注于开发高并发的分布式应用。对互联网后端技术、分布式、网络编程、XMPP即时通讯等领域感兴趣。曾多次组织广州及珠三角技术沙龙活动。个人Bloghttp://timyang.net

岳旭强:企业内部技术产品开源有何好处?需要注意什么?

杨卫华: 目前不少心态开放的企业已将一些会给业界带来价值的产品进行开源。新浪也在这方面进行了不少尝试,近几年开源了若干产品。根据我们的体会,产品开源一方面 可以促进项目参与人员将技术做得更好,在程序结构、代码风格、代码一致性、代码效率方面会更加谨慎,让源代码及文档达到业内开发人员认可的标准。而业内很 多闭源产品通常只要求项目内部范围的可读性及强调代码执行效率,甚至有不少公司项目只关注实现 功能,对代码质量和技术文档要求甚少,因此开源在一定程度上是对高标准的自我要求。另一方面开源可以提高公司在业界技术人员中的影响力,增强公司的产品在 技术专业人群领域的认可,并有可能吸引潜在的优秀人才加入公司,更重要的是企业的开源产品可以给业界带来价值,减少在相近领域的重复劳动,降低一些同行特 别是小公司的开发成本。

Filed under: Reading Continue reading