自己原文公众号: https://mp.weixin.qq.com/s/xieQP6SNryzKOE8R3Qy1Tg
先说一下观点。没有!时至今日还是依然有很多人认为数据库中数据量大了查询会慢。实在不好意思,这个观点是不对的。
我看到一句SQL select * from a where a.code like '%XXXX%' 执行了57秒,这个有点小儿科了。估计大家都知道这样是用不到索引的,而这个列式有索引的。去掉前%,执行一下15毫秒。57000除以15约等于3800.也就是说不能增加任何硬件,提升了几千倍。系统的性能明显提升,而且稳定性也极大提升,至少敢说是支持并发了。
为什么前后%呢?基本可以猜出来,设计的时候没考虑,或者开发偷懒。这些都好解决,改一下SQL代码就行。怕就怕,用户希望的就是前后都模糊,即用一个MYSQL来实现百度的功能,这样的想法是很可怕的。
其实一般来说,不用高级的手段,仅仅使用索引就能解决99%的问题。为什么?因为关系型数据库的索引构成决定了索引层级都很低。2千万和20亿极有可能是一个层级。关于层级我觉得应该开一篇专题谈谈。
很多时候都是其实不是数据库不行,而是使用方法有问题?
坡道起步的时候挂五档会如何?考过驾照的人都知道是熄火。那么你怪车还是怪坡?
