PHP开发人员经常犯的10个MySQL错误更正分析

PHP开发人员经常犯的10个MySQL错误更正分析
1。而不是使用InnoDB表

完全错误,反驳理由:

首先,原文说MyISAM是默认的,但事实上,MySQL 5.5。x,InnoDB引擎已经成为默认的表。

此外,InnoDB使用简单不是解决所有问题。盲目使用甚至会使应用程序性能降低10%甚至40%。

最好的办法是对具体业务的具体处理,如论坛、新闻分类,各种表不长时间连续运行,还需要使用MyISAM引擎的性能。

而事务处理,如用户、帐户、管道等,严格要求数据的完整性和时序性。InnoDB引擎是必要的,和事务处理机制也应适用。当然,事务处理,必然会带来大量的性能损失,但它是简单的高并发应用程序的必要。

最后,在公共Web Web应用程序中通常不使用外键约束,因为它对性能有严重影响。数据完整性是由程序员或应用程序体系结构本身的健壮性维护的。正常的第三范式仅用于企业内部的MIS系统和12306网站上的MIS系统。

2。使用PHP的mysql方法

这并不是完全错误的,但应该作为适当的选择。

mysqli是好的,但不是所有的服务器都编译PHP的mysqli的支持。

mysqli是最好的选择,当你的应用程序能够确定服务器部署只靠你自己,和自己完全开发应用。

但是,一旦您的应用程序部署到虚拟主机或由其他人部署(如分布式项目),或者使用MySQL函数设置诚实,请使用成熟框架来消除SQL注入。

三.不要过滤用户输入

不必说,要么magicquote,或一个成熟的framework.sql到老话题。

4。不要使用UTF-8

在大多数情况下,应该仔细考虑。

你知道,一个UTF-8字符占3个字节,所以是33%比其他任何像GBK编码文件。换句话说,相同的网页是以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语句,判断时间,写出像选择X从哪里注册日期表。正确的方法不是使用MySQL的任何时间函数,而是计算应用程序中的时间,如果是分布式应用程序,就必须有一个统一管理时间的时间服务器。

和文章中的一些MySQL的数学函数也要小心使用。在大型应用中,数据库的负担往往是最大的,而复杂的,语句是查询慢的罪魁祸首。因此,我们应该把计算上有尽可能多的应用服务器,价格便宜,不影响全球的稳定,而不是在核心数据库。

6。查询优化

不用说,大型应用程序甚至不允许使用各种连接,甚至编写两个查询,用PHP检查数据。

7。使用错误的数据类型

int、TinyINT、varchar、CHAR、文本,这些字段类型的合理选择是无可厚非的。

三种类型的日期,时间,和时间戳是绝对不可使用在大型的应用程序,而不是int(10)符号。

一个是性能,另外,它是应用程序,尤其是PHP非常方便,将unix_timestamp时间戳。这是麻烦使用日期输出多种格式。

8。使用SELECT查询*

分享

9。索引或overindexed

该指标是必要的,但如果指数无法解决,考虑memcache或NoSQL解决方案。

10。非备份

这是作者所做的。

11。另一种:不考虑其他数据库。

这是非常正确的,在应用程序中,不仅要为应用程序选择其他数据库,而且还要选择特定的业务类型,并在同一组应用程序中使用各种数据库,即使它不是数据库,它也是各种其他缓存和内存存储的解决方案。

tag:错误开发人员电脑软件phpmysql

相关内容