问题答案

如题,从我目前所见所知都是不要再sql语句中使用mysql自带的函数而去使用PHP中的函数,但是个人内心一直对这种说法不太信服,如果是这样 那么mysql自带函数存在的意义是什么呢?

标签: MySQL
答案
用mysql自带函数有什么不好?
1.很可能造成where后的条件无法走索引
2.把一些php层面简单的业务逻辑交给mysql来做,加大了mysql的压力(尽管可能你看来执行一次sql语句影响很小),对小系统而言没什么。如果对于大型系统,那会是灾难。大型系统的瓶颈基本都在数据库层面难以扩展,php很容易的水平扩展,php不会是瓶颈,因此,尽可能的降低数据库的处理压力,包括减少查询次数通过cache来解决,减少每次查询的时间则通过索引以及尽可能的业务在php层面处理,mysql只做最基本简单的查询少使用自带函数。
 
那mysql自带函数为什么存在?
1. 比如一些数据初始化是可以用,或者存储过程等..
2. 小型系统可以使用mysql自带函数,反正没啥瓶颈
3. 不能因为大型系统不建议查询用自带函数就不提供,因为考虑到普遍的需求
比如php框架的ORM设计,很费资源又慢,大型系统也不建议用,小系统就随便用,方便又快速。
总结就是不能因为一些场景不建议用就不提供...方便快速的代价就是性能。
以上纯属个人观点...
举一反三