监理公司管理系统 | 工程企业管理系统 | OA系统 | ERP系统 | 造价咨询管理系统 | 工程设计管理系统 | 签约案例 | 购买价格 | 在线试用 | 手机APP | 产品资料
X 关闭
新余网站建设公司

当前位置:工程项目OA系统 > 泛普各地 > 江西OA系统 > 新余OA > 新余网站建设公司

PHP开发者经常犯的几个MySQL错误

申请免费试用、咨询电话:400-8352-114

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.别的:不思索其他数据库
这条相当准确。使用中不只要针对使用选择其他数据库,甚至还要针对详细得营业类型,在统一套使用中并行运用多种数据库。哪怕不是数据库,而是其他各类缓存、内存存储等处理方案。

发布:2007-03-31 15:14    编辑:泛普软件 · xiaona    [打印此页]    [关闭]
新余OA
联系方式

成都公司:成都市成华区建设南路160号1层9号

重庆公司:重庆市江北区红旗河沟华创商务大厦18楼

咨询:400-8352-114

加微信,免费获取试用系统

QQ在线咨询

泛普新余网站建设公司其他应用

新余软件开发公司 新余门禁系统 新余物业管理软件 新余仓库管理软件 新余餐饮管理软件 新余网站建设公司