ShardingSphere的3个产品的数据分片次要流程是完全一致的。
外围由SQL解析 => 执行器优化 => SQL路由 => SQL改写 => SQL执行 => 后果归并
的流程组成。
SQL解析
分为词法解析和语法解析。
先通过词法解析器将SQL拆分为一个个不可再分的单词。再应用语法解析器对SQL进行了解,并最终提炼出解析上下文。
解析上下文包含表、选择项、排序项、分组项、聚合函数、分页信息、查问条件以及可能须要批改的占位符的标记。
执行器优化
合并和优化分片条件,如OR等。
SQL路由
依据解析上下文匹配用户配置的分片策略,并生成路由门路。目前反对分片路由和播送路由。
SQL改写
将SQL改写为在实在数据库中能够正确执行的语句。SQL改写分为正确性改写和优化改写。
SQL执行
通过多线程执行器异步执行。
后果归并
将多个执行后果集归并以便于通过对立的JDBC接口输入。后果归并包含流式归并、内存归并和应用装璜者模式的追加归并这几种形式。