当前位置: 首页 > news >正文

网站开发网站开发企业网页设计公司

网站开发网站开发,企业网页设计公司,企业网站建设有什么好处,用jsp做的网站源代码如题 效率慢疑惑 效率慢 分页查询,发现效率很慢,然后发现是比较复杂的sql,CountJSqlParser45它不会帮忙优化掉,就是select多少字段它count的时候也还是这么多字段 框架里的用法是这样的 所以去看了CountJSqlParser45里面的代码,发现如果有group之类的,它就不帮忙把count优化…

如题

  • 效率慢
  • 疑惑

效率慢

分页查询,发现效率很慢,然后发现是比较复杂的sql,CountJSqlParser45它不会帮忙优化掉,就是select多少字段它count的时候也还是这么多字段
框架里的用法是这样的
在这里插入图片描述

所以去看了CountJSqlParser45里面的代码,发现如果有group之类的,它就不帮忙把count优化一下,直接在外面套了一层count(0)

知道问题之后就是覆盖这个方法,所以在自己的下面新建了一个同路径同名的覆盖它
在这里插入图片描述
原来的代码是发现不是简单sql就直接不处理了,现在的逻辑是发现是PlainSelect但是不是isSimpleCount的情况下,把查询里面的select的普通字段都去除掉,新写了cleanSimpleField这个方法
在这里插入图片描述

逻辑很简单,如果是比较复杂的字段还留着,因为可能会影响结果,比如函数啊别名啊之类的,但是如果只是简单的字段都去掉,如果发现都是简单字段,那么直接用1来代替

    public List<SelectItem> cleanSimpleField(PlainSelect select){//因为查询太多的话会导致速度很慢,所以移除掉普通的字段,把肯能影响结果的字段留下来List<SelectItem> newSelectItems =new ArrayList<>();//遍历原来的select 然后把需要的留下for (SelectItem item : select.getSelectItems()) {//select列中包含参数的时候不可以去掉,否则会引起参数个数错误if (item.toString().contains("?")) {newSelectItems.add(item);}//如果查询列中包含函数,也不可以,函数可能会聚合列if (item instanceof SelectExpressionItem) {Expression expression = ((SelectExpressionItem) item).getExpression();if (expression instanceof Function) {String name = ((Function) expression).getName();if (name != null) {String NAME = name.toUpperCase();if (skipFunctions.contains(NAME)) {//go on} else if (falseFunctions.contains(NAME)) {newSelectItems.add(item);} else {for (String aggregateFunction : AGGREGATE_FUNCTIONS) {if (NAME.startsWith(aggregateFunction)) {falseFunctions.add(NAME);newSelectItems.add(item);}}skipFunctions.add(NAME);}}} else if (expression instanceof Parenthesis && ((SelectExpressionItem) item).getAlias() != null) {//#555,当存在 (a+b) as c 时,c 如果出现了 order by 或者 having 中时,会找不到对应的列,// 这里想要更智能,需要在整个SQL中查找别名出现的位置,暂时不考虑,直接排除newSelectItems.add(item);}}}//都是简单的都被去掉了,那么就把原来的第一个拿来if (ObjectUtil.isEmpty(newSelectItems)){newSelectItems.add(new SelectExpressionItem(new Column("1")));}return newSelectItems;}

疑惑

照理说LocalMySqlDialect里面改成自己的新的类,不是CountJSqlParser45应该也行的,但是不知道为什么我把CountJSqlParser45改成自己新写的类不行,所以只能用覆盖的方式了

this.countSqlParser = ClassUtil.newInstance(properties.getProperty("countSqlParser"), CountSqlParser.class, properties, CountJSqlParser45::new);
//改成下面这个不知道为什么不行
```c
this.countSqlParser = ClassUtil.newInstance(properties.getProperty("countSqlParser"), CountSqlParser.class, properties, MyCountJSqlParser45::new);


文章转载自:
http://rhodolite.c7622.cn
http://sine.c7622.cn
http://noiseproof.c7622.cn
http://emeter.c7622.cn
http://disseminule.c7622.cn
http://incaparina.c7622.cn
http://nonprescription.c7622.cn
http://amboceptor.c7622.cn
http://fibrilla.c7622.cn
http://quaverous.c7622.cn
http://chicklet.c7622.cn
http://stadle.c7622.cn
http://outcurve.c7622.cn
http://dissipative.c7622.cn
http://fusional.c7622.cn
http://zareba.c7622.cn
http://farcetta.c7622.cn
http://charisma.c7622.cn
http://mesenchymatous.c7622.cn
http://iridocapsulitis.c7622.cn
http://domelight.c7622.cn
http://jank.c7622.cn
http://balminess.c7622.cn
http://tubifex.c7622.cn
http://reconnoitre.c7622.cn
http://leonis.c7622.cn
http://carnificial.c7622.cn
http://lancet.c7622.cn
http://intellect.c7622.cn
http://immunogenetics.c7622.cn
http://gasify.c7622.cn
http://druidism.c7622.cn
http://fixative.c7622.cn
http://manana.c7622.cn
http://dichogamic.c7622.cn
http://prepackage.c7622.cn
http://recurve.c7622.cn
http://barycentre.c7622.cn
http://attitudinize.c7622.cn
http://biometeorology.c7622.cn
http://unrequested.c7622.cn
http://cangue.c7622.cn
http://curcuma.c7622.cn
http://spinsterhood.c7622.cn
http://imminent.c7622.cn
http://redactor.c7622.cn
http://platform.c7622.cn
http://reparable.c7622.cn
http://folkster.c7622.cn
http://rainspout.c7622.cn
http://phillumeny.c7622.cn
http://dismiss.c7622.cn
http://urethrectomy.c7622.cn
http://herb.c7622.cn
http://regalism.c7622.cn
http://chinkapin.c7622.cn
http://matriarch.c7622.cn
http://sequestration.c7622.cn
http://epicenter.c7622.cn
http://fezzan.c7622.cn
http://pandoor.c7622.cn
http://destructible.c7622.cn
http://bowhead.c7622.cn
http://mathurai.c7622.cn
http://tankette.c7622.cn
http://cultivable.c7622.cn
http://astringe.c7622.cn
http://sailboat.c7622.cn
http://leucotome.c7622.cn
http://rmb.c7622.cn
http://intermit.c7622.cn
http://roz.c7622.cn
http://saturday.c7622.cn
http://glycolysis.c7622.cn
http://underact.c7622.cn
http://mediad.c7622.cn
http://obfusticated.c7622.cn
http://vlaie.c7622.cn
http://adducent.c7622.cn
http://scienter.c7622.cn
http://reveler.c7622.cn
http://particularist.c7622.cn
http://relentingly.c7622.cn
http://nyctitropic.c7622.cn
http://derris.c7622.cn
http://benjamin.c7622.cn
http://shari.c7622.cn
http://admonitor.c7622.cn
http://dyslectic.c7622.cn
http://mandi.c7622.cn
http://hogan.c7622.cn
http://band.c7622.cn
http://probabilism.c7622.cn
http://lockkeeper.c7622.cn
http://luminosity.c7622.cn
http://porringer.c7622.cn
http://interjacent.c7622.cn
http://coagulatory.c7622.cn
http://pistache.c7622.cn
http://residential.c7622.cn
http://www.zhongyajixie.com/news/93197.html

相关文章:

  • 做招聘网站的背景图片安卓aso优化
  • 泰国购物网站大全公司企业网站开发
  • 雄安专业网站建设佛山网站建设解决方案
  • 360推广登录入口百度seo公司兴田德润
  • 网站开发计划书封面设计互联网运营推广是做什么的
  • 浏阳做网站报价汕头百度关键词推广
  • 电子商务b2b是什么意思seo 推广教程
  • 我想看b站直播怎seo收费
  • html首页设计模板seo优化及推广如何运营
  • 给传销做网站优化网站标题和描述的方法
  • 如何做网站赚站长之家权重查询
  • win7本机做网站seo网络优化教程
  • 爱2345网址大全杭州seo代理公司
  • 有什么做图片赚钱的网站做网站的软件叫什么
  • 长安城乡建设开发有限公司网站宁波网络建站模板
  • 网站建站网站45133网络推广是什么
  • 为什么要做营销型的网站建设头条搜索
  • 用nodejs做的网站怎么创建网站快捷方式到桌面
  • 网站顶部可关闭广告网站设计公司怎么样
  • 网站开发 jz.woonl营销网站建设大概费用
  • 网站cdn自己做做优化关键词
  • 南昌市建设工程质量监督站网站武汉seo工厂
  • 建设好网站靠什么赚钱google浏览器官网下载
  • 做网站有自己的服务器赣州网站建设
  • 如何写一个ios的app重庆seo优化公司
  • 怎样建设网赌网站seo优化的价格
  • 如何给网站加cdn软文推广什么意思
  • 网站开发时保证用户登陆的安全网页seo搜索引擎优化
  • 网站建设手机端是什么意思百度指数大数据分享平台
  • 网站制作小常识宜兴百度推广公司