8
回答
正则表达式,用在PHP里面判断好还是在数据库里面好?
有文件要导入数据库。但是有些内容需要判断后才最终允许插入。
判断比较复杂,需要用到正则表达式。

现在想的是两种方法:1.在PHP代码中用正则判断完后,插入数据库。2.先导入数据库,然后在数据库中用正则判断,不符合的删除(或者中间加一部临时表,在临时表里面用完正则后再真正插入)。

实际测试了一下,用第二种方法稍微快一点。
不知道大家在遇到这种情况时,一般是怎么做的呢?建议采用哪种方法呢?

举报
wsg
发帖于6年前 8回/440阅
共有8个答案 最后回答: 6年前

引用来自“false”的答案

按照我的经验, 2不可能比1快的, 检查下1里是不是有不合理的地方导致整体变慢吧

我测试的结果确实是2比较快的。

因为要导入的是个csv文件,所以用的LOAD DATA INFILE方法。而且要用正则的是每行中的第二项。
用1的话,还得一行一行按csv格式读,然后用正则判断第二项。最后再导入数据库。

如果用2,就可以一下子导入数据库,然后直接对第二列进行正则判断了。

不过,也如楼上几位所说,这样好像不是数据库该干的活儿,而且以后要增加什么判断的话,不灵活。

数据库就是数据库,不是数据计算库。对数据本身的操作逻辑应当在数据库外处理,数据库操作的工作丢给数据库做。比如数据库内的数据的增删查改。原则上,数据的比对,计算,都属于非数据库本身的工作。只不过现在的数据库都提供了实现方法,你直接调用完事。尽可能的简化操作逻辑,这你判断由谁做更重要。如果数据库的附属操作能直接实现的,那么还是用数据库提供的东西,这样效率比通常人用PHP折腾肯定要高。但这些仅局限在具体的简单明了的操作上。

谢谢各位的回复。大概明白了,就是:简单的可以交给DB处理,复杂的最好不要扔给DB。

我暂时决定先用PHP来处理了。

O(∩_∩)O谢谢大家。

顶部