摘要: php是弱类型语言,它可以保存任何的数据类型。但是php是使用c语言编写的,而c语言是强类型语言。每个变量都有固定的类型,不能随意改变变量的类型。 在zend/zend.h中,查看结构体: zval结构体就是通常用到的php变量在内核总的表示形式,在zval结构体中,可以看到四个成员变量,分别是: 阅读全文
posted @ 2017-06-04 13:53 魏什么魏什么啊 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 最常见的四种启动php的方式: 1、直接以cli/cgi模式调用 2、多进程模块 3、多线程模块 4、Embedded(嵌入式,在自己的c程序中调用zend engine) SAPI提供一个接口,使得php可以和其他应用进行交互数据,也就是说,php能够和其他程序(Apache、nginx)交互就是 阅读全文
posted @ 2017-04-19 14:50 魏什么魏什么啊 阅读(173) 评论(0) 推荐(0) 编辑
摘要: mysql是线程模式,可以支持更多的并发连接数,mysql能支持远比oracle更多的连接,所以oracle应用中通常用数据库连接池技术来复用连接,那么mysql为什么要用常见的数据库连接池技术呢? 原因在于mysql的锁机制还不够完善,同时程序中的一些问题都有可能导致mysql数据库的连接阻塞,在 阅读全文
posted @ 2017-04-18 17:17 魏什么魏什么啊 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 1、采用myisam引起 r/w>100:1且update相对较少 并发不高,不需要事物 表数据量小 硬件资源有限 2、采用innodb引擎 r/w比较小,频繁更新大字段 表数据量超过1000万,并发高 安全性和可用性要求高 3、采用memory引擎 有足够的内存 对数据一致性要求不高,如在线人数和 阅读全文
posted @ 2017-04-18 16:48 魏什么魏什么啊 阅读(119) 评论(0) 推荐(0) 编辑
摘要: mysql索引建立和使用的基本原则如下: 1、合理设计和使用索引 2、在关键字段的索引上,建与不建索引,查询速度相差近100倍 3、差的索引和没有索引的效果一样 4、索引并非越多越好,因为维护索引需要成本 5、每个表的索引应在5个以下,应合理利用部分索引和联合索引 6、不在结果集中的结果单一的列上建 阅读全文
posted @ 2017-04-18 16:41 魏什么魏什么啊 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 基本语句优化的10个原则: 1、尽量避免在列上进行运算,这样会导致索引失败 2、使用join时,应该用小结果集驱动大结果集。同时把复杂的join查询拆分成多个query。因为join多个表时,可能导致更多的锁定和堵塞 3、注意like模糊查询的使用,避免%% 4、仅列出需要查询的字段,这对速度不会有 阅读全文
posted @ 2017-04-18 15:24 魏什么魏什么啊 阅读(132) 评论(0) 推荐(0) 编辑
摘要: PDO提供一个通用接口访问多种数据库,即抽象的数据模型支持连接多种数据库。 在php中,连接mysql数据库通常有三种选择: 1、mysql系列函数:最常用,也是过程是风格的一组应用 2、mysqli系列函数:是mysql函数的增强改进版,提供了过程化和面向对象两种风格的api,增加了预编译和参数绑 阅读全文
posted @ 2017-04-18 15:14 魏什么魏什么啊 阅读(137) 评论(0) 推荐(0) 编辑
摘要: Q1:cookie运行在客户端,session运行在服务端,对么? A:不完全正确,cookie是运行在客户端,由客户端管理,session虽然运行在服务端,但是session作为一个cookie是存储在客户端的。 Q2:浏览器禁用cookie,cookie就不能用了,但session不会受浏览器影 阅读全文
posted @ 2017-04-18 14:43 魏什么魏什么啊 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 1、会话劫持,禁止cookie等,解决就是通过隐藏参数传递 2、sql注入,xss攻击,解决:pdo预处理,过滤输入的参数 3、文件漏洞,解决:关闭错误代码调试,对open_basedir尽心设置对目录外的文件禁止处理,把safe_mode开启状态 具体: 1、对于Session漏洞的防范 从前面的 阅读全文
posted @ 2017-03-31 16:52 魏什么魏什么啊 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 1、在执行写操作的时候,如果再高并发的情况下,如果服务器抖动,写到一半还没写完,然后用户再次请求接口,可能会导致数据写两次 解决方法:就是在写之前加层30秒的缓存,如果用户再次请求,就会绕过这层缓存不会往数据库写,下次进来的时候回判断数据库是否有记录,如果没有执行写操作,如果有就会绕过,这就是使用代 阅读全文
posted @ 2017-03-31 16:37 魏什么魏什么啊 阅读(322) 评论(3) 推荐(0) 编辑