php连接数据库采用技术,PHP核心技术与技术实践---PHP与数据库连接

1、PDO

PDO就是一个接口,可以让PHP和各种数据库进行交互。虽然PDO支持预处理和数据绑定,但是由于查询效率低,所以笔者不推荐使用

2、数据库的优化

基本语句优化原则

1、尽量避免在列上进行运算,

eg:select * from t where YEAR(d)>=2011   优化为  select * from t where d >= ‘2011-01-01’;

2、使用JOIN连接时,尽量使用小结果集驱动大结果集(根据实际需要可以调整)

3、注意LIKE的模糊操作的使用,避免%%

eg:  select * from where name like ‘%de%’   优化为  select * from where name>=’de’  and name

4、列出需要的字段   主要是节约内存

5、使用批量插入  节省交互

6、limit的基数比较大的时候,使用between,在取比较后面的数据时候,使用desc把数据反向查找,减少对数据的扫描

7、不用适用rand函数获取多条记录

8、避免使用NULL

9、不要使用count(id),而应该吃用count(*)?这是为什么

10、不要做无所谓的排序操作。

5.2.2    索引与性能分析

MyISAM注重性能,InnoDB注重事物————————–这句话是错的

1、选择存储引擎

(1)采用MyISAM引擎

R/W > 100 : 1且update相对较少

并发不高,不需要事务

表数据量小

硬件资源有限

(2)采用InnoDB引擎

R/W比较小,且频繁更新大字段

表数据量超过1000万,并发高

安全性和可用性要求高

(3)采用Momory引擎

有足够的内存

需要定期归档的数据     对数据一致性要求不高

2、MySQl服务器调整优化措施

1)关闭不必要的二进制日志和慢查询日志

2)适度使用Query Cache

3)增加mysql的最大连接数

4)从表中删除大量的数据后,使用OPTIMIZE   TABLE TableName

5.3

5.3.1    范式与反范式:现在硬盘的存储条件是允许牺牲物理内存来换取查询时间的。

5.3.2    数据库分区:把数据表的文件和索引分散存储在不同的个物理文件中,对于数据量超过百万的数据,尽量使用数据库分区,可以提高效率的。对于分区,通常使用RANGE类型(在实际开发中还没有试过)

5.3.3       数据库分表:分表是把一个表分成几个表,进行分表查询时候,可以用union或者做一个视图。数据库分表分为:水平分表和垂直分表。(在实际开发中还没有试过)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值