基于简单sql语句的sql解析原理及在大数据中的应用

李万鸿

老百姓呼吁打土豪分田地、共同富裕,总有一天会实现。
全面了解你所不知道的外星人和宇宙真想:http://pan.baidu.com/s/1c1utFDQ
http://blog.sina.com.cn/s/blog_89436e570102w8qs.html
http://blog.sina.com.cn/contn
8年后,  中国2024年将统一世界!
呵呵,地球正在从黑暗进入光明。外星人在帮助地球村民!
呵呵,外星人是客观存在的,星际联盟正在解救地球。数百万行星大小的星际飞船正环绕地球,帮助地球文明的进化,人类文明将飞跃进入宇宙文明,每一个人物质財富、精神財富都会圆满的大同盛世,请大家多看相关资料。就会明确,我们从哪里来,地球的种种问题的根本原因何在,我们往哪里去?。

。。
UFO=universe family one。我们是宇宙大家庭的一员,如今整个宇宙的光明力量都来帮助地球铲除暴政。建立共产主义佛教的大同盛世。我们是一家人,大家要相亲相爱团结一心,勇敢革命,地球将会更美好!
天下兴亡匹夫有责,大家都有义不容辞的重任帮助人类的解放和文明的进步,而每一个人都会是受益者!

功在当代利在千秋!

南无阿弥佗佛!

嗡嘛呢叭咪吽! 
人类意志的临界点决定着事件发生的速度,即人类的觉醒程度、对事件的认知与渴盼程度决定着事件何时发生…so 请呼唤身边的朋友们參与事件冥想,加速事件发生、加速地球解放吧!精彩自己。撒爱万有!


我们在生死轮回中,都以前在外星球生活过。外星人是我们的兄弟姐妹,天下一家人,相亲又相爱。。如今,地球人被奴役,我们要反抗。要勇敢革命,建立光明正义的地球村,一个世外桃源的乌托邦,共产主义佛教地球村。大家都幸福快乐,永远不用担负沉重的经济压力。外星高科技,给地球带来无穷无尽的物质財富,每一个人都快乐无限!

大家能够把此文转给朋友,提前分享8年后的幸福快乐!

通常sql语法解析都是以lex、yacc进行分析为基础的,是逐个字符进行分析,性能不高。假设基于没有子查询的sql语句进行解析,则速度会提高很多,在此对其原理加以说明。

一般sql语句十分复杂,包括多层嵌套。但当中有规律可循。其特点是全部的语句基本模式是一样的,即:都是SELECT  FROM  WHERE类型的简单语句。因此,能够把嵌套的语句逐条解析为这样的简单语句。因为sql语句的语法是一样的。所以能够用递归的方法对语句加以解析,从而把sql语句解析为多条简单的子SQL语句。然后通过一个方法分别解析这些子sql语句。这样处理。算法简单有效。极大地提高性能,对于SQL语法解析来说是一个革命性的新思路。

大数据通常使用HBASE等NOSQL,对于sql开发来说极为不便。为此,採用分布式的关系数据库来保存大数据极具有用价值,比方用ORACLE、MYSQL把一张表分库保存到多个数据库,这样既能够处理海量数据又适用于传统的编程,支持MYBATIS、SPRING、HIBERNATE。开发极为方便。

对应的难点是各个分库的表的ID的唯一性和SQL语句的处理。

对于ID的唯一性解决不难,关键在于分布式SQL的处理。

随着SPARK等大数据软件应运而生,对于分布式数据的处理来说正当其时。

能够用SPARK来处理分布的数据。那么怎样得到这些数据呢?为此,能够通过本文提出的SQL解析原理对SQL语句进行解析,把一条复杂的SQL语句解析为多简单的SQL语句,如 SELECT A.*FORM USER  A WHERE  A.ID>222,然后通过数据字典找到USER表相应的分库,在各个分库上运行查询,然后把各个查询结果用SPARK处理,对于其它的子SQL语句如法炮制,然后依据主SQL语句的条件如JOIN、GROUP BY、ORDER BY等对全部的查询数据进行运算汇总处理,最后返回结果。

总之,通过获取各个简单的子SQL语句进行语法解析或语句分解。是一个行之有效的好办法。简单巧妙地攻克了一个公共的难题,尤其对于採用高效数据库处理大数据有特殊的意义,为其奠定了基石。这是一个极为有效的解决的方法。值得应用。

2014-10-17

转载于:https://www.cnblogs.com/yxwkf/p/5267915.html

基于简单sql语句的sql解析原理及在大数据中的应用相关推荐

  1. java解析sql语句简书,Mybatis原理解析(一)--java.sql数据库操作的基本实现方式

    在研究Mybatis原理之前,先看一下java中是如何实现一次对数据库的访问的: public void testSql() { Connection connection = null; State ...

  2. 共享SQL语句减少硬解析

    这篇文章是参考甲骨论老相老师所做的教学视频: http://v.youku.com/v_show/id_XMzkyMTczMTQ4.html 所做的学习笔记: 接上文: http://nvd11.bl ...

  3. sqlserver sql语句|经典sql语句|实用sql语句

    sqlserver sql语句|经典sql语句|实用sql语句 一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop databa ...

  4. SQL语句教程-------SQL语法

    SQL语句教程-------SQL语法 在这一页中,我们列出所有在这个网站有列出 SQL 指令的语法.若要更详尽的说明,请点选指令名称. 这一页的目的是提供一个简洁的 SQL 语法做为读者参考之用.我 ...

  5. web安全学习笔记--sql语句(sql注入基础上)

    一.基础知和表内操作语法 1.sql语句对大小写不敏感!!! SELECT - 从数据库表中获取数据:select * from (columns/tables/databases); UPDATE ...

  6. mysql查询某一时间段之后数据的sql_mysql进阶(十九)SQL语句如何精准查找某一时间段的数据...

    SQL语句如何精准查找某一时间段的数据 在项目开发过程中,自己需要查询出一定时间段内的交易.故需要在sql查询语句中加入日期时间要素,sql语句如何实现? SELECT * FROM lmapp.lm ...

  7. SQL语句统计每天、每月、每年的数据

    SQL语句统计每天.每月.每年的数据 1.每年 select year(ordertime) 年, sum(Total) 销售合计 from 订单表 group by year(ordertime) ...

  8. 学习SQL语句之SQL语句大全

    学习SQL语句之SQL语句大全 -------------------------------------------------------------------------------- 作者: ...

  9. Pycharm中SQL语句提示SQL Dialect is Not Configured

    使用Pycharm进行数据库查询时,SQL语句提示SQL Dialect is Not Configured,是因为没有配置数据库. 按照图中设置即可. File --> Settings -- ...

最新文章

  1. linux c 报错 warning: large integer implicitly truncated to unsigned type[-Woverflow]
  2. java和python可以在一个项目中同时使用么-可以同时用python和java开发一个app吗?...
  3. Kubernetes-基于k8s-v1.14.2安装dashboard-1.10.1
  4. keras实现 vgg16
  5. Java最佳实践– Char到Byte和Byte到Char的转换
  6. [渝粤教育] 西南科技大学 西方经济学 在线考试复习资料
  7. Python | 程序从列表中删除范围内的所有元素
  8. 大学四年, 专业心得
  9. 包云岗:伯克利科研模式的启发
  10. ZeroMq的研究和使用
  11. FZEasyFile的使用
  12. leetcode-337-打家劫舍三*
  13. IpV6 linux RedHat5
  14. platform总线注册过程及platform_driver与platform_device的匹配
  15. 计算机怎么快捷截图桌面,屏幕截屏的快捷键是什么 6种电脑截图快捷键操作方法...
  16. 阿里云通过镜像迁移系统后,项目报异常Unable to set localhost. This prevents creation of a GUID...
  17. clock()、time()、clock_gettime()和gettimeofday()函数的用法和区别【转】
  18. 学之思开源代码学习(1)
  19. Cramer悖论:线性代数的萌芽
  20. 2022 版史上最全 Java 八股文,没有任何异议

热门文章

  1. iOS之去掉NavigationBar 底部的黑线
  2. Centos7下磁盘空间的扩容(超详细)
  3. 解决:利用IDEA的右上角图标打开jsp文件
  4. python编程100例海绵宝宝-python基础1(理论基础)
  5. MATLAB判断是不是质数,matlab 如何表示一个数是不是质数,如题 。
  6. C:\Users\Administrator\AppData\Local\Temp这是什么文件夹
  7. Vue.js学习-搭建一个简单的demo
  8. 微信pc端网站应用扫码授权登录
  9. ubuntu下PDF转图片--python
  10. 【C语言习题】有3个学生,上4门课程,要求输入全部学生的各门课成绩,并分别求出每门课的平均成绩(用二维数组编程)