ITPub博客

首页 > 数据库 > 数据库开发技术 > 数据库的大脑-优化器

数据库的大脑-优化器

原创 数据库开发技术 作者:xuexiaogang 时间:2022-08-25 22:48:47 0 删除 编辑

 可能这个比喻不是很恰当。但是不会差太多。前几天和一个算法美女博士谈及她的专业,我说其实数据库核心之一就是算法。我在她面前班门弄斧的说了阶乘和选择度等。当然博士容忍了我的吹牛。其实我个人也这样理解的,数据库是数学和物理学的结合。一个SQL就是把高级语言翻译成机器语言,最后在指定的地方读写值。如何读写其实很大程度取决于逻辑,我有时候看到一些待优化的SQL就是: 查一年数据可能是200万(其实不大对吧)。 那么如果一页200行,那么就是1万页。 有人一定强迫症要看看总页数。(其实没必要,请参考谷歌和百度)。也就是说返回这么多,但是使用的人我想基本不会看1万页的,最多就看几页。 相当于做了满汉全席,结果吃了两口,全倒掉了。这是逻辑呀。有的时候为什么SQL慢,逻辑错了。

     数据库的心脏是优化器(依赖统计信息我们先不表)我几年前听说MySQL和PG的优化器有很多种算法。一个是25种一个是50种。(谁25,谁50。我忘了,说谁少,谁不高兴。两边都有朋友不得罪人了)。然后我听恩墨老师说Oracle有250种优化算法。以上数据都来自于几年前。现在具体不知道了。所以有人说为什么Oracle快,你可能不知道多少满头白发的数学教授在那里研究着这些。

    平时也在不少群里看到,说某某国产太拉胯,Oracle、MySQL、PG上都能很快或者较快出结果的。结果在它上面出不来结果,甚至奔溃了。所以如果用有些提到的国产,就需要开发重写所有逻辑,否则支持不了的。

   以前有个清华的硕士和我说,他们在2000年初,全班都被新浪、搜狐整班入职。那时候全国最好的人来做高并发的门户网站。那时的开发还要求逻辑和算法,现在只有大厂还坚持着这个优良的传统。

   “你别逼我,逼急了我什么都做的出来。 ”     “是吗?,那你把这道数学题给做做?”    人被逼急了还真不是什么都做的出来,起码数学就不是。

     有的数据库比较好,其中一个方面就是这个。我看过有些看上去有点“恶心 ”的SQL,他还执行的这么快。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/637517/viewspace-2912087/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
OracleACE/PostgreSQLACE/阿里云MVP/腾讯云TVP/墨天轮 MVP/TiDBMVA/数盟会华东区长老/OpenTenBase社区委和技术委委员/架构师技术同盟名人堂成员上海地区理事会成员/if社区联合发起人/《DBA实战手记》作者/公众号:四海内皆兄弟

注册时间:2013-07-01

  • 博文量
    422
  • 访问量
    953518