![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
php
文章平均质量分 95
老花鸟
我的宗旨就是多尝试,人生在世百余载,要多去尝试。这样才可无憾的去尝试最后一样!
展开
-
PHP极其强大的图片处理库Grafika详细教程(1):图像基本处理
Grafika是一个PHP图像处理库,是基于Imagick和GD,可以用于改变图片大小,剪裁,比较,添加水印等等功能。还有感知哈希,高级图像过滤,绘制贝塞尔曲线等功能,可谓非常强大。《1、图像基本处理》《2、图像特效处理模块》《3、图像属性处理》《4、图形绘制》一、图像基本处理优点:缩略图的速度非常快,质量非常高支持智能剪裁很好的支持GIF图片5种缩略图模式图像对比功能图像高级过滤功能图像混合其他...转载 2018-03-08 09:57:21 · 16204 阅读 · 3 评论 -
MySQL索引方法
MySQL目前主要有以下几种索引方法:B-Tree,Hash,R-Tree。一、B-TreeB-Tree是最常见的索引类型,所有值(被索引的列)都是排过序的,每个叶节点到跟节点距离相等。所以B-Tree适合用来查找某一范围内的数据,而且可以直接支持数据排序(ORDER BY)B-Tree在MyISAM里的形式和Innodb稍有不同:MyISAM表数据文件和索引文件是分离的,索引文件仅保存数据记录的...转载 2018-03-09 13:12:16 · 142 阅读 · 0 评论 -
MySQL慢查询(一) - 开启慢查询
一、简介开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。二、参数说明slow_query_log 慢查询开启状态slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)long_query_time 查询超过多少秒才记录三、设置步骤1.查看慢查...转载 2018-03-09 13:20:26 · 115 阅读 · 0 评论 -
MySQL慢查询(二) - pt-query-digest详解慢查询日志
一、简介pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog、General log、slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析。可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间、次数、占比等,可以借助分析结果找出...转载 2018-03-09 13:23:37 · 159 阅读 · 0 评论 -
用php实现几种常见的排序算法
交换排序: 交换排序的基本思想是,比较两个记录键值的大小,如果这两个记录键值的大小出现逆序,则交换这两个记录,这样将键值较小的记录向序列前部移动,键值较大的记录向序列后部移动。一、冒泡排序 介绍:冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工...原创 2018-03-09 14:24:00 · 217 阅读 · 0 评论 -
查找算法
1.顺序查找 - 就是遍历数组一个一个进行判断如果相等表示找到 退出即可[php] view plain copy /** * 数组顺序查找某值 * @param array $arr 要检索的数组 * @param integer $need 要查询的数 * @return integer 找到返回该数下标 失败返回false */ function gene...原创 2018-03-09 17:25:31 · 157 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第一部分主要从...转载 2018-03-20 15:48:14 · 176 阅读 · 0 评论 -
linux下core dump【总结】
1、前言 一直在从事linux下后台开发,经常与core文件打交道。还记得刚开始从事linux下开发时,程序突然崩溃了,也没有任何日志。我不知所措,同事叫我看看core,我却问什么是core,怎么看。同事鄙视的眼神,我依然在目。后来学会了从core文件中分析原因,通过gdb看出程序挂再哪里,分析前后的变量,找出问题的原因。当时就觉得很神奇,core文件是怎么产生的呢?难道系统会自动产生,可是我在...转载 2018-03-27 16:39:56 · 119 阅读 · 0 评论 -
Redis实现分布式锁 php
一、分布式锁的作用: redis写入时不带锁定功能,为防止多个进程同时进行一个操作,出现意想不到的结果,so...对缓存进行插入更新操作时自定义加锁功能。二、Redis的NX后缀命令 Redis有一系列的命令,其特点是以NX结尾,NX的意思可以理解为 NOT EXISTS(不存在),SETNX命令 (SET IF NOT EXISTS) 可以理解为如果不存在则插入,Red...转载 2019-04-23 16:29:58 · 103 阅读 · 0 评论 -
MySQL索引类型
一、简介MySQL目前主要有以下几种索引类型:1.普通索引2.唯一索引3.主键索引4.组合索引5.全文索引二、语句CREATE TABLE table_name[col_name data type][unique|fulltext][index|key][index_name](col_name[length])[asc|desc]1.unique|fulltext为可选参数,分别表示唯一索引...转载 2018-03-09 11:30:25 · 87 阅读 · 0 评论 -
MySQL分区和分表
一、概念1.为什么要分表和分区?日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率。2.什么是分表?分表是将一个大表按照一定的规则分解成多张具有独立存储空间的实体表,我...转载 2018-03-09 11:23:29 · 110 阅读 · 0 评论 -
PHP单元测试框架PHPUnit的使用
一、前言在这篇文章中,我们使用 composer 的依赖包管理工具进行phpunit包安装和管理,composer 官方地址 https://getcomposer.org/,按照提示进行全局安装即可,另外,我们也会使用一个非常好用的Monolog记录日志组件记录日志,方便我们查看。在根目录下建立 coomposer.json 的配置文件,输入以下内容:{ "autoload": { ...转载 2018-03-15 15:59:54 · 242 阅读 · 0 评论 -
PHP极其强大的图片处理库Grafika详细教程(2):图像特效处理模块
接上篇:《1、图像基本处理》《2、图像特效处理模块》《3、图像属性处理》《4、图形绘制》我们开门见山,直接继续上实例,详细了解点击上面链接图片过滤、滤镜grafika提供了11种滤镜功能,可以满足开发中的任何情况需求。这里先介绍一个操作方法:apply:它可以将滤镜效果应用到图片图片模糊使用Blur参数,模糊化一张图片其中模糊度取值范围为0-100,数值越大,图片越模糊use Grafika\Gr...转载 2018-03-08 10:17:40 · 2454 阅读 · 0 评论 -
PHP极其强大的图片处理库Grafika详细教程(3):图像属性处理
接上文:《1、图像基本处理》《2、图像特效处理模块》《3、图像属性处理》《4、图形绘制》该文章主要写grafika的图像属性处理功能,共7个方法1、图片格式化为二进制格式输出该方法的作用是打开一张图片,然后格式化为二进制数据,直接输出到浏览器,而不是传统的src显示图片。其有一个参数,你可以自定义输出图片的格式,比如png啥的我们这里打开图片,输出为png当然你还是要告诉浏览器你需要输出的类型是图...转载 2018-03-08 10:27:05 · 2166 阅读 · 0 评论 -
PHP极其强大的图片处理库Grafika详细教程(4):图形绘制
接上文所有的教程目录《1、图像基本处理》《2、图像特效处理模块》《3、图像属性处理》《4、图形绘制》话不多说,我们接着上实例,要看基础描述,和下载信息请看第一篇1、绘制贝塞尔曲线贝塞尔曲线绘制,需要两个端点,一头一尾,还有两个控制点,在之间。所以,必然最起码4个参数。加上一个颜色共计5个参数。从做到右,我们依次解释第一个(数组):表示起始点,数组内第一个参数为x,第二个参数为y(下同)第二个(数组...转载 2018-03-08 10:38:20 · 2197 阅读 · 0 评论 -
MySQL配置优化
一、全局配置(1)max_connections最大连接数。默认值是151,最多2000。如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量。但是如果连接数越多,介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值。查看最大连接数mysql> SHOW VARIABLES LIKE 'max_connections';查看响应的连接数mysql&g...转载 2018-03-09 10:29:34 · 110 阅读 · 0 评论 -
MySQL优化
一、SQL语句优化(1)使用limit对查询结果的记录进行限定(2)避免select *,将需要查找的字段列出来(3)使用连接(join)来代替子查询(4)拆分大的delete或insert语句二、选择合适的数据类型(1)使用可存下数据的最小的数据类型,整型 < date,time < char,varchar < blob(2)使用简单的数据类型,整型比字符处理开销更小,因为字...转载 2018-03-09 10:34:48 · 79 阅读 · 0 评论 -
MySQL各存储引擎
MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL服务器中启用。你可...转载 2018-03-09 10:41:17 · 86 阅读 · 0 评论 -
MySQL锁详解
一、概述数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的需求,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计,所以各存储...转载 2018-03-09 10:46:58 · 110 阅读 · 0 评论 -
ySQL事务
一、事务(Transaction)及其ACID属性事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性:1.原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。2.一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关的数据规则都必须应用于事务的修改,以保持数据的完整性;事...转载 2018-03-09 11:14:04 · 376 阅读 · 0 评论 -
Nginx基础概念之connection
在nginx中connection就是对tcp连接的封装,其中包括连接的socket,读事件,写事件。利用nginx封装的connection,我们可以很方便的使用nginx来处理与连接相关的事情,比如,建立连接,发送与接受数据等。而nginx中的http请求的处理就是建立在connection之上的,所以nginx不仅可以作为一个web服务器,也可以作为邮件服务器。 结合...原创 2019-09-09 11:22:46 · 1652 阅读 · 0 评论