PHP开发者经常犯的几个MySQL错误
1.运用MyISAM而不是InnoDB
完全错误,辩驳来由:
起首原文说MyISAM是默许运用得,而实践上到了MySQL 5.5.x,InnoDB曾经成为了默许得表引擎。
别的,简略得运用InnoDB不是处理一切问题得办法,盲目得运用甚至会使使用功能下降10%甚至40%。
最佳办法照样针对详细营业详细处置,例如论坛中版块表,新闻分类表,各类码表等长工夫不操作得表,照样要用功能优异得MyISAM引擎。
而需求用到事务处置得例如用户、账目、流水等严厉要求数据完好性和时序性得,则需求用InnoDB引擎,而且使用也要用功德务处置机制。当然,事务处置必定要带来很多得功能损耗,然则这在简略高并发使用上是必需得。
最终,外键约束在公共web互联网使用上普通是不必得,由于他会严峻影响功能。数据完好性照样靠顺序员或许使用架构自身得强健来维护。而正轨得第三范式只是在企业泌部MIS系统和12306这种网站上运用。
2.运用PHP得mysql办法
不完全错,但要酌情选用:
mysqli虽然好,然则不是一切得效劳器都为PHP编译了mysqli得支撑。
当你得使用假如是能确定只用本人摆设得效劳器,而使用也是完全本人开拓,则mysqli是最好得选择。
然则一旦你得使用有能够摆设在虚拟主机或许由其别人摆设(例如散布式项目),照样老诚恳实运用mysql函数集吧,好好封装一下或许运用成熟框架根绝sql注入。
3.但是滤用户输入
这一点不必说了,要么MagicQuote,要么选用成熟框架。sql注入老话题了。
4.不运用UTF-8
大局部状况下对,但也要仔细思索:
要晓得,一个UTF-8字符占3个字节,所以比GBK等其他编码得文件大33%。换句话说,一样得网页用UTF-8编码假如是100KB,那么换成GBK编码则只要66KB。所以即使你得PHP确定要用UTF-8,那么前端页面也要依据状况选择需求得编码。然则,假如PHP用UTF-8,前端模版是GBK,再加上模版引擎不强壮,那么转码任务够你受得。所以尽能够得选用本人需求得编码,而不是简略得选择UTF-8了事。
最终烦琐一句:UTF-8下:strlen("我")=3,而GBK下:strlen("我")=2
5.该用SQL得当地运用PHP
相同酌情思索:
例如,有些人习气在建表时,默许值填写CURRENT_TIMESTAMP,用来到达注册工夫、发帖工夫得结果。 或许在工夫判别得SQL语句中,写相似SELECT x FROM tab1 WHERE regdate < UNIX_TIMESTAMP()。那么我只能说,你为系统埋下了很荫蔽得BUG。由于数据库和使用往往不在统一台机械上,工夫很轻易呈现偏向。当你一套使用得工夫参照禁绝确时,就会呈现很大得问题。
准确做法是:不要运用MySQL得任何工夫函数,而是在使用里核算工夫。假如是散布式使用,必然要有工夫效劳器来一致治理工夫。
而文中说得一些MySQL数学函数 ,也是要慎用。由于在大型使用中,数据库得担负往往是最大得,而复杂得WHERE语句又是形成慢查询得首恶。所以,要把核算尽能够得放在廉价得、不影响全局不变得使用效劳器上,而不是中心数据库上。
6.不优化查询
这点也不必说了,大型使用上甚至不答应运用各类JOIN,哪怕生写两条查询,查回来在用PHP兼并数据。
7.运用错误得数据类型
INT,TinyINT,VARCHAR,CHAR,TEXT这些字段类型得合理选用无可厚非。
而Date、DateTime、TIMESTAMP这三品种型,在大型使用中是绝对不成以运用得,而是要用INT(10) UNSIGNED替代。
一个是功能,别的就是使用中尤其是PHP对UNIX_TIMESTAMP工夫戳得转化真实太便利了。用Date要输出各类工夫花样反而费事。
8.在SELECT查询中运用*
共勉
9.索引缺乏或许过度索引
索引是必需得,然则假如索引都处理不了得查询,思索memcache或许nosql处理方案吧。
10.不备份
这条是作者充数么?
11.别的:不思索其他数据库
这条相当准确。使用中不只要针对使用选择其他数据库,甚至还要针对详细得营业类型,在统一套使用中并行运用多种数据库。哪怕不是数据库,而是其他各类缓存、内存存储等处理方案。
- 1系统的二次开发、初试ECSHOP制作模板
- 2综合性网站建设的一点看法
- 3网络营销的服务构成
- 4php中时间轴开发
- 5企业应用架构模式
- 6网站设计师必须懂的
- 7新余网站建设哪里有?
- 8JavaScript的优化准则
- 9网站权重的表现
- 10怎样学习及实践网络营销
- 11反馈留言不能转发到指定邮箱的解决办法
- 12在ecshop首页添加最新发货订单
- 13新余网站建设网站建设项目解决方案
- 14用百度产品做优化的问题
- 15网上商城订单转化率
- 16PHP网站访问人数统计代码分析
- 17正确使用PHP引号
- 18百度算法的变化看网站排名
- 19JavaScript智能浮动
- 20做网站优化必知三点
- 21SNS社交网站建设方案
- 22TEL域名网站中的优势
- 23网站标题文字怎么修改?
- 24高权重的网站的表现
- 25网站设计中几个失败的设计
- 26PHP调用Linux系统的常用函数
- 27网站内部优化一点小总结
- 28企业网站制作应怎样设计细节
- 29企业集团网站建设解决方案
- 30新余视频网站解决方案
成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼