资料详情

php开发设计基础笔记

头像

理工论文

编号:10960

##########10.29笔记########################

一、双引号和单引号的区别

前者是解释变量,后者是不解释变量,但尽量使用单引号,因为双引号需要先遍历一遍判断里面是否有变量,然后在进行操作,而单引号不需要判断。

二、常用的全局变量

$_GET$_POST$_REQUEST(可以接收到postget两种方式的值)$GLOBALS(全部变量放里面)$_FILE(文件上传使用)$_SERVER(系统的环境变量)$_SESSION(会话控制)$_COOKIE(会话控制)

三、MySQL数据库优化的八大方式(http://www.jianshu.com/p/dac715a88b44

1、选取最适用的字段属性(以及字段长度要适合)、另外一个提高效率的方法是在可能的情况下,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。

2、使用连接(JOIN)来代替子查询(Sub-Queries)

3、使用联合(UNION)来代替手动创建的临时表

4、事务处理

作用:

1)保持数据库中数据的一致性和完整性

2)事务的另一个重要作用是当多个用户同时使用相同的数据源时,它可以利用锁定数据库的方法来为用户提供一种安全的访问方式,这样可以保证用户的操作不被其它的用户所干扰。

举例:

  BEGIN;

  INSERT   INTO   salesinfo   SET   customerid=14;

  UPDATE   inventory   SET   quantity =11   WHERE   

item='book';

  COMMIT;

5、锁定表,事务处理优化

有些情况下我们可以通过锁定表的方法来获得更好的性能

举例:

LOCK TABLE inventory WRITE SELECT quantity  FROM   

inventory   WHERE Item='book';

UPDATE   inventory   SET   Quantity=11   WHERE  

Item='book';UNLOCKTABLES

6、使用外键,优化锁定表

锁定表的方法可以维护数据的完整性,但是它却不能保证数据的关联性。这个时候我们就可以使用外键。

注意:MySQL中使用外键,一定要记住在创建表的时候将表的类型定义为事务安全表InnoDB类型。该类型不是MySQL表的默认类型。定义的方法是在CREATE TABLE语句中加上engine=INNODB

7、使用索引

索引是提高数据库性能的常用方法,它可以令数据库服务器以比没有索引快得多的速度检索特定的行,尤其是在查询语句当中包含有MAX(),MIN()ORDERBY这些命令的时候,性能提高更为明显。

注意:

1)一般说来,索引应建立在那些将用于JOIN,WHERE判断和ORDERBY排序的字段上。尽量不要对数据库中某个含有大量重复的值的字段建立索引。

2)对于一个大的数据库,将数据装载到一个没有FULLTEXT索引的表中,然后再使用ALTERTABLECREATEINDEX创建索引,将是非常快的。但如果将数据装载到一个已经有FULLTEXT索引的表中,执行过程将会非常慢

8、优化的查询语句

四、模板引擎:Smarty模板引擎

五、解决访问量的问题(大流量网站)

1.确认服务器硬件是否能够支持当前的流量

2.数据库读写分离,优化数据表

3.程序功能规则,禁止外部的盗链

4.控制大文件的下载

5.使用不同主机分流主要流量

六、语句includerequire的区别是什么

区别:

require是无条件包含,也就是如果一个流程里加入require,无论条件成立与否都会先执行require,当文件不存在或者无法打开的时候,会提示错误,并且会终止程序执行include有返回值,而require没有(可能因为如此require的速度比include),如果被包含的文件不存在的化,那么会提示一个错误,但是程序会继续执行下去注意:包含文件不存在或者语法错误的时候require是致命的,而include不是为避免多次包含同一文件,可以用require_once代替,避免重复包含