性能与稳定


  • 关于性能

    默认情况下AnyLine的性能是比较低的,这主要是指的DataSet/DataRow的性能
    原因是DataSet/DataRow要适配各种复杂的检索,如:
    忽略大小写、驼峰与分隔符转换、正则表达式、排序、维度转换、截取、去重、方差、偏差、交集合集差集、分组、忽略大小写对比、行列转换、类SQL过滤筛选(like,eq,in,less,between...)、JSON、XML格式转换等
    在每一次get/set操作中都有可能涉及这些情况,在大多数情况下使用会比较方便,如DataRow.get("user_id")/get("userId")/get("userID")都能获取到期望结果;DataSet.get("NAME","张%");可以获取NAME以张开头的行
    当然智能也意味着运行低效,在分页情况下每页几十行数据没什么影响


    但在一次性处理几十上百万行数据时会非常耗时。
    通常在处理大数据时需要设置DataRow的KeyCases为SRC模式,或者返回Entity/Map格式的数据
    也就是让系统精确的按人为指定的模式去运行,编码阶段能确定的事不要交给运行时处理。

    除此之外,性能主要取决于数据库设计。

  • 关于稳定性
    稳定性方面其实与AnyLine没有太大关系,因为AnyLine并没有作太多工作,只是把参数封装好后交给了spring-jdbc,并在返回数据上作了进一步封装
    参考设计思想最后一条:保证与Spring生态的深度融合,以充分利用其生态内的连接池,事务管理,切面等现有轮子。