• janey
    2019-09-17
    在编译器层面实现分布式数据查询,可以理解为把多表查询提前了吗?只是看起来就一个select语句

    作者回复: 你说的多表,是指同一个表在不同服务器上的分片吗?
    如果一个SQL是涉及多个分片的,解析了SQL以后,是可以针对每个分片重新生成SQL的。但这个需要对语义更深的理解,要把SQL语句变成关系代数的运算(选择、投影、笛卡尔积、Union等),这样就知道如何正确的重组成多个SQL了。

    
     2
  • xiaoma2008
    2019-11-14
    如果老师对分布式数据库比较熟的话,希望老师能出个分布式查询的课程!

    作者回复: 我最近其实在构思写一个分布式数据访问的工具。跟MyCat的定位会不大相同,是想整体上把数据访问这件事情,对应用透明化。野心有点大。
    因为现在很多用到数据库的应用,其水平扩展能力都困在了数据库这个点上。这个问题不解决,所谓云原生就是在忽视房间里的大象。
    我看资料,已经有一些分布式数据库的商业产品。但要像使用一个单一的数据库一样的使用它,还是有点困难。
    我整理一下这方面的思路,会跟大家分享的。

    
     1
  • David
    2019-10-01
    关于编译技术还有什么经典的应用场景吗?老师帮我们拓展一下想象力。

    作者回复: 每个领域都会有这样的场景。
    无论是上层的应用软件(如工资表软件),还是下层的基础软件(如数据库软件)。只要想让软件的功能有一定灵活性的、通用性的,都需要编译技术。
    曾经在Lisp圈里(参见《黑客与画家》),有人说,每个软件做到极致的时候,里面都会包含一个拙劣的Lisp实现。他的意思是,每个软件做到极致,都要有灵活定制的能力,也就是需要编译技术的支持。
    具体来说,每个领域不一样,所以举例子也只能举自己熟悉领域的例子。
    我熟悉的领域:
    1.企业软件:比如ERP软件等。定制能力是否强大,就是优秀的企业软件和平庸的企业软件的区别。现在的企业软件在实施的时候,成本往往很高,就是这方面比较差。我目前手头在做的一门语言,就是在解决这个领域的问题。
    2.中间件/基础软件:这里肯定需要。例子太多了。
    3.GIS,也算一种基础软件吧,也有编程能力。
    其他同学,有的熟悉游戏领域,有的在AI领域,各自都有不同的场景。

    
     1
  • Richie
    2019-09-22
    老师能不能多讲点,关于SQL解析的内容,更深,更细

    作者回复: SQL的部分展开确实挺多的。
    要不然跟极客时间合作一本书,收集大家的需求,把一些细节更多的展开?
    或者后面做课程升级的时候,考虑扩展一下这部分。

    
     1
  • 大冯宇宙
    2020-01-23
    学到了。
    
    
  • zhj
    2019-11-05
    SQLVisitor代码在哪里了

    作者回复: https://github.com/RichardGong/PlayWithCompiler/blob/master/lab/db/src/main/playdb/SQLVisitor.java

    我在文稿中加一下链接...

    
    
  • 52rock
    2019-10-03
    查找delete没有where的SQL

    作者回复: 嗯。这种delete语句肯定比较危险。

    
    
我们在线,来聊聊吧