索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。
一本 500 页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下,那我估计你可得找一会儿。同样,对于数据库的表而言,索引其实就是它的“目录”。
提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务。最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱。
转账过程具体到程序里会有一系列的操作,比如查询余额、做加减法、更新余额等,这些操作必须保证是一体的,不然等程序查完之后,还没做减法之前,你这 100 块钱,完全可以借着这个时间差再查一次,然后再给另外一个朋友转账,如果银行这么整,不就乱了么?这时就要用到“事务”这个概念了。
与成人相比,孩子学习乐器的速度有多快?
他们学习第二或者第三语言的速度有多快?
他们学的快对吧?
为什么?
有多少人,当你听到某首歌,它会带你回到小时候?
有多少人,可能不是一首歌,但也许它是一种香味或食物,会带你回到几十年前?
因为信息与感情的结合成了一种长期记忆,我们做事情并不是符合逻辑的。
我们怎么做事?感情用事
以Redis Cluster为例子,虽然Redis的作者开发了redistrib.rb这样的工具帮助我们快速构建和管理Redis Cluster,但是每个Redis节点仍然需要手工配置和启动,相对来说还是比较繁琐的,
而且由于是人工操作,所以存在一定的错误率。例如作为一个Redis运维人员,管理几百上千个Redis节点是很正常的事,如果单纯手工安装配置,既耗时又容易出错。