php+mysql开发过程中要有性能控制的概念
来源:互联网 发布:足球数据库软件哪个好 编辑:程序博客网 时间:2024/05/29 19:26
背景:查看服务器日志的时候,发现一个报超内存的错误。问题解决后,有了些关于节约内存,提高sql运行效率的感慨。
php性能方面
1.关于内存方面:
以前做java的,本身的垃圾回收机制让我基本不需要关注变量的销毁;php没有出了{}区域就变量就会销毁的概念。所以在运行程序报超内存错误的时候,我们除了调大应用内存之外也可以做一些处理,如:
a.一个存放大数据量的数组,直接超出内存限制的时候,可以将数组切分成小的数组;
b.循环处理一个大数组的时候,处理完一个key对应的值,可以将该key给unset掉,释放内存;
c.一个方法如果逻辑特别复杂,导致写的代码很长,产生的变量很多。这时候,就可以将代码按照变量紧挨逻辑处理的形式由应用上下文的形式,从上到下开始整理代码,完了之后,就可以在每个大变量最后应用完的地方,将该变量给unset掉;
2.关于运行方面的:
网上找了些资料,除了自己写的逻辑代码不够简洁会影响运行效率外。php的自动类型转换也是可能影响运行效率的点,php本身是弱类型的,对于变量和值很多时候没有明确的界定。这种的典范无疑就是in_array()这个判断了,详细的可见http://www.jb51.net/article/41446.htm描述。
mysql提高运行效率
1.能不排序的尽量不要order by。遇到的mysql代码里,有些地方是不需要排序的,去掉order by后运行时间往往会有较大的提升(尤其是返回结果较大的时候);
2.要有索引应用的概念,查询条件尽可能的走索引字段,查询频率高的字段要创建索引;
3.维护好自己的sql语句,尽量不要让有用到索引的sql语句中出现导致索引失效情况类似于%××××%的like查询等;
4.注意组合索引的最左原则;
5.where多条件的时候,将筛选结果能达到最小的字段条件放在最前面
目前总结的经验就这么多,随着以后更多的接触,慢慢再丰富吧。这篇主要是注意概念,一些细的点可以谷歌或百度查查,然后练练!
- php+mysql开发过程中要有性能控制的概念
- php+mysql中存储过程性能简单比较
- android开发过程中涉及到的“概念”摘要
- 例解:过程性能模型的概念辨析
- git要有暂存区概念的原因
- ksearch系统开发过程中遇到的KFC性能问题
- 开发过程中可以提升性能的八大处
- android app 开发过程中 对于性能优化的总结
- PHP中Session的概念
- php中重载的概念
- php的mysql性能优化
- mysql中事务的概念
- php开发过程中mongodb数据库groupby的使用
- [高性能MySQL]--MySQL的架构与概念
- MySQL存储过程的控制语句
- MySQL存储过程的控制语句
- MySQL存储过程的循环控制指令
- mysql 储存过程的流程控制
- vmware vcenter 5.5 + OpenStack Havana vlan 网络部署
- javascript中的new
- /输出100-200间的全部素数
- Oracle中ROWNUM的使用技巧
- 关于uploadify的一些心得
- php+mysql开发过程中要有性能控制的概念
- spring的IOC,DI依赖注入和AOP
- #ifdef和#if defined
- android manifest.xml 配置文件 杂
- Myeclipse 和 Eclipse创建web项目的区别
- 彻底为贺老师解决了统计同学分数的问题
- 贺氏银行.
- 单元测试的作用
- [C++] C++编译失败分析例子