继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

PHP核心技术与技术实践---PHP与数据库连接

青春有我
关注TA
已关注
手记 1199
粉丝 205
获赞 1008

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 <'df'

        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或者做一个视图。数据库分表分为:水平分表和垂直分表。(在实际开发中还没有试过)



作者:白雪歌送武判官归天
链接:https://www.jianshu.com/p/c69f5abe84ae


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP