一个应用,需要对一条消息是否发布进行一些权限的校验(需访问数据库)和内容的检查(需正则匹配),则哪个应该先进行?

2021-05-01 16:24:23 +08:00
 Newyorkcity
因为不论是权限的校验通不过还是内容的检查通不过,消息就肯定发不出来了,所以我想请教『连接数据库进行查询的消耗(当然,是有合适的索引候着的)』和『向文本进行正则匹配以检查(文本最多两百字)的消耗』,哪个更少点?

对数据库的连接用的是 springboot + HikariCP,正则检查用的是 JDK 自带的。

多谢
703 次点击
所在节点    问与答
7 条回复
imn1
2021-05-01 16:38:35 +08:00
权限就是 BOOL 吧?消耗总比正则少,难不成贵司的权限设置异常复杂?
billlee
2021-05-01 16:49:16 +08:00
看正则有多复杂了,jdk 的正则是 backtrace 的,性能不怎么好。但不管怎么说这个也是容易水平扩展的
renmu123
2021-05-01 18:45:38 +08:00
那肯定是权限啊,分几种情况讨论
1. 有权限,内容正确
2. 有权限,内容错误
3. 无权限,内容正确
4. 无权限,内容错误。

在有权限的情况,要对两种都进行检查,顺序没什么差。
但如果检查到无权限,那么其实已经不用进行内容检查了。

如果先检查内容,那么这四种情况都要进行两次检查
superrichman
2021-05-01 18:55:37 +08:00
没权限你检查这内容有什么意义?
akira
2021-05-01 21:29:46 +08:00
@renmu123 按照楼主的要求,内容错误也是不发的。 所以都一样
lidlesseye11
2021-05-01 21:37:15 +08:00
从性能角度来说,先查内容比较好,毕竟省得连 db 了。
但从易用性来说还是先查权限吧。。你检查不通过的时候不用给调用者返回原因吗?
先检查内容的话,人家改了半天好不容易改好了,你再回个没有权限?不给人气炸了。。。
当然,最好还是两个都检查一下。。
raaaaaar
2021-05-02 00:17:14 +08:00
一条龙服务

我就是那条龙

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/774517

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX