sagacity-sqltoy-5.2.60 リリース、強化されたクエリ統計機能

オープンソースのアドレス:

更新内容

1. グループ集計の計算では、グループ集計の後に結果の並べ替えが追加されます (どのグループが最初または最後にランク付けされるか)

<sql id="qstart_multi_group">
    <!-- has-grouped: 数据是否已经通过sql完成了分组组织,默认为true -->
    <summary sum-columns="total" reverse="true" has-grouped="false">
        <!-- order-column: 分组排序列,order-with-sum:默认为true,order-way:desc/asc -->
        <group group-column="event_level1" sum-label="小计" label-column="event_level2" order-column="total"/>
        <group group-column="event_level2" sum-label="小计" label-column="event_level3" order-column="total"/>
        <group group-column="event_level3" sum-label="小计" label-column="event_level4" order-column="total"/>
    </summary>
    <value>
    <![CDATA[
    select event_level1, event_level2,event_level3,event_level4,total
    from ss
    order by event_level1, event_level2,event_level3,total desc
    ]]>
    </value>
</sql>


2. ツリー構造により、階層の内部ノードのソートが増加します。
 

<sql id="qstart_treeTable_search">
    <value>
    <![CDATA[
    select * from sqltoy_organ_info t order by ORGAN_NAME 
    ]]>
    </value>
    <!-- 进行树结构层级排序 -->
    <tree-sort id-column="organ_id" pid-column="organ_pid" sum-columns="TOTAL" level-order-column="TOTAL"/>
</sql>

sqltoy の主な利点:

//------------------了解 sqltoy的关键优势: -------------------------------------------------------------------------------------------*/
//1、最简最直观的sql编写方式(不仅仅是查询语句),采用条件参数前置处理规整法,让sql语句部分跟客户端保持高度一致
//2、sql中支持注释(规避了对hint特性的影响,知道hint吗?搜oracle hint),和动态更新加载,便于开发和后期维护整个过程的管理
//3、支持缓存翻译和反向缓存条件检索(通过缓存将名称匹配成精确的key),实现sql简化和性能大幅提升
//4、支持快速分页和分页优化功能,实现分页最高级别的优化,同时还考虑到了cte多个with as情况下的优化支持
//5、支持并行查询
//6、根本杜绝sql注入问题
//7、支持行列转换、分组汇总求平均、同比环比计算,在于用算法解决复杂sql,同时也解决了sql跨数据库问题
//8、支持保留字自动适配
//9、支持跨数据库函数自适配,从而非常有利于一套代码适应多种数据库便于产品化,比如oracle的nvl,当sql在mysql环境执行时自动替换为ifnull
//10、支持分库分表
//11、提供了取top、取random记录、树形表结构构造和递归查询支持、updateFetch单次交互完成修改和查询等实用的功能
//12、sqltoy的update、save、saveAll、load 等crud操作规避了jpa的缺陷,参见update(entity,String...forceUpdateProps)和updateFetch
//13、提供了极为人性化的条件处理:排它性条件、日期条件加减和提取月末月初处理等
//14、提供了查询结果日期、数字格式化、安全脱敏处理,让复杂的事情变得简单,大幅简化sql或结果的二次处理工作
//-----------------------------------------------------------------------------------*/

sqltoyの特徴:

  • sqltoyの核となる構造アイデア

  • mybatis (plus) と比較した sqltoy の核心点: クエリ文の記述、可読性、保守性

  • オブジェクトのクラッドが基盤ですが、sqltoy では、update、updateSaveFetch、updateFetch などの改善を目標としています。

  • sqltoy のキャッシュ変換により、テーブルの関連付けが大幅に削減され、SQL が簡素化され、クエリのパフォーマンスが幾何級数的に向上します。

sqltoy が mybatis (plus) を数秒で殺す理由を説明してください

  • 極端なページネーションは、クエリのパフォーマンスの大幅な向上にも役立ちます
  1. 高速ページング: @fast () は、最初に単一ページのデータを取得してから、関連するクエリを取得することを実現し、速度を大幅に向上させます。
  2. ページング オプティマイザー: ページ最適化により、ページング クエリが 2 倍から 1.3 ~ 1.5 倍に変更されます (一定期間内にクエリを繰り返さなくても、同じクエリ条件を持つレコードの総数がキャッシュ内に実現されます)
  3. 合計レコードを取得するための sqltoy のページネーションのプロセスは、(元の SQL) からの単純な select count (1) ではなく、次の状態になるかどうかをインテリジェントに判断します: select count (1) from 'from state after'、および by によって最も外側の順序が自動的に削除されます。
  4. sqltoy は並列クエリをサポートしています:Parallel="true"。レコードの総数と単一ページのデータを同時にクエリし、パフォーマンスを大幅に向上させます。
sqltoy が mybatis (plus) を数秒で殺す理由を説明してください
 
  • 便利なデータベース間統計計算: データローテーション
sqltoy が mybatis (plus) を数秒で殺す理由を説明してください
  • 便利なデータベース間統計計算: Infinitus グループ統計 (要約と平均を含む)
sqltoy が mybatis (plus) を数秒で殺す理由を説明してください
  • 便利なデータベース横断統計計算:前年比
sqltoy が mybatis (plus) を数秒で殺す理由を説明してください
5. ツリーテーブルのソート概要

6. 拡張統合

おすすめ

転載: www.oschina.net/news/250841/sagacity-sqltoy-5-2-60-released