自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 InnoDB与Myisam的区别

事务方面innodb支持事务 myisam不支持事务锁innodb锁级别为行锁(innodb的行锁不是绝对的,当执行sql语句是不能确定扫描范围需要全表扫描的话这时候是表锁 例如 用like去匹配查询) mysiam锁级别为表锁表行数innodb不保存具体行数 mysiam保存总行数,count时可以直接读取,但当count时有where查询两者做的操作是一样的需要全表扫描全文索引innodb不支持全文索引 mysiam支持全文索引外键innodb支持外键 mysia..

2020-12-08 17:42:58 99

原创 php垃圾回收机制

引用计数php变量存在”zval“容器之中,”zval“中除了存变量的 类型和值,还存两个额外的信息,is_ref和refcount。第一个是"is_ref",是个bool值,用来标识这个变量是否是属于引用集合(reference set)。通过这个字节,php引擎才能把普通变量和引用变量区分开来,由于php允许用户通过使用&来使用自定义引用,zval变量容器中还有一个内部引用计数机制,来优化内存使用。第二个额外字节是"refcount",用以表示指向这个zval变量容器的变量(也称符号即s.

2020-11-18 18:44:17 109

原创 进程和线程

个人理解进程是系统资源分配的最小单位。线程是分配给进程的系统资源的调度,通俗的可以说成是对进程分配资源的消耗。因此,一个进程可以有多个线程,但至少有一个线程。进程和线程之间的不同多进程,每个进程都有自己的地址空间,而同一个进程的多个线程则共享这个进程的地址空间。线程之间的通信方式...

2020-06-12 18:40:46 140

原创 记一次工作中遇到的小知识点 foreach中使用unset

今天工作中遇到的一个问题,记录一下接口中返回的数据格式不一致一个方法里边return的数据竟然不一致,太过分了,这样前端处理起来比较费时。问题出现在了这里根据了特定条件进行了unset,当一个数据unset后就会出现“非连续数组”,这时候返回给前端就变成对象。索引数组转为json后是数组。而关联数组转为json后是对象。解决办法:数组重组 使用array_values();...

2020-06-11 17:40:56 321

原创 数据结构八大类型

常见的八种数据结构数组栈队列链表堆哈希表图树数组数组的常见类型:一维数组多维数组优点:根据索引查找元素方便缺点:数组大小确定后就无法扩容了添加、删除操作慢,因为要改变数组顺序,移动其他元素栈先进后出,栈顶允许操作,栈底不允许操作,像经常用的撤销操作,就是用栈的原理实现的。队列先进先出,也是一种线性结构,从一端入队,从另一端出队。链表链表元素有两个结点,一个是存储元素的数据域,另一个是存放指向下一个结点的指针域。根据指针的指向,链表能分为单向链表、双向链表、循

2020-06-04 18:51:15 1384

原创 复合索引和多个单列索引的区别

多个单列索引在每个需要索引的字段上设置一个索引复合索引根据查询需求在多个字段设置一个索引区别1、多个单列索引实现简单,那个字段需要就在哪里加,而复合索引的话,需要根据需求,考虑好索引顺序设置索引。2、再查询中,如果查询条件使用where连接的,则多个单列索引中只有一个索引会生效,而复合索引在设计的时候已经考虑了索引顺序,所以这时候,复合索引的效率是要比多个单列索引效率高。mysql创建复合索引alert table test add INDEX `sindex` (`aaa`,`bbb`,`

2020-06-03 12:21:09 1164

原创 存储过程和事务

事务中可以有存储过程 存储过程中也可以有事务。存储过程一组为了完成特定功能的sql语句集,存储在数据库服务端,可以远程调用。优点:1、执行速度快2、提高工作效率,实现简单,一般调用一两行代码就可以实现。3、规范程序设计,升级、维护方便。4、提高系统安全性,只有设定用户才可以进行操作。缺点:没有遵循MVC模式。事务事务中的操作是一个整体,要么整体完成,要么整体不做。保证了数据的完整性。四大特性:1、原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。

2020-06-03 09:58:21 1018

原创 php重载

在面向对象的中的含义是:使用不同的形参实现同一个方法不同的输出,也就是说,在同一个类或者对象里边,有多个名字相同但是形参不同的方法。在php语言里的含义是:对一个对象或者类使用未定义的属性或者方法的时候,其中一些处理机制。下面介绍一下方法重载的php的魔术方法 __call()、__callStatic()这两个魔术方法有两个参数$ name、和$arguments,第一个参数代表的是被调用的不存在的方法的方法名,第二个参数是被调用的方法的参数封装成的一个数组。下边用代码实现一下:<?ph

2020-06-02 12:15:15 122

原创 静态请求和动态请求

静态请求简单的来说就是html页面的请求。具体的请求历程:用户访问一个.html的文件服务器端接收到请求,该请求到达服务器的内核空间,因为tcp/ip协议工作在内核空间;到达内核空间后,发现访问的是80端口的套接字,通过路由和相关解码,请求被转到服务器的用户空间,也就是转到了web服务上;请求到达用户空间后,发现请求的是一个文件,然后继续把请求转到内核空间,内核空间通过内核在磁盘上获取对应文件;请求在内核空间获取到对应文件后,把文件返回至用户空间即web服务;请求结果到达用户空间的web服

2020-05-27 15:16:46 7743

翻译 基础原生sql

selectselect * form table_name;select distinct根据字段查询不重复的列值select distinct field_name form table_name;whereselect * form table_name where field_name = '';and&orand 为并select * form table_name where field_name1 = '' and field_name2 = '';or 为

2020-05-26 17:55:14 146

原创 实战-php实现ip地址转为点分二进制

php不使用进制转换内置函数实现十进制ip地址转换为二进制public function Ip() { $ip='192.168.1.1'; $result=$this->binIp($ip); echo $result; } public function binIp($ip) { //字符串分割 数组便于处理 $arr = explode('.',$ip); $a

2020-05-19 14:52:10 531

原创 git 冷知识

查看远程仓库地址 git remote -v查看远程仓库信息git remote show 仓库名查看远程仓库详细信息$git remote show 仓库名添加远程仓库git remote add 名字 地址重命名远程仓库git remote rename old new删除远程仓库 git remote rm 仓库名git checkout a 切换到a分支git checkout -b new 切换到新建的new分支git checkout - - test.txt 撤销工作区的修改

2020-05-18 17:41:21 118

原创 php7 新特性

标量类型说明declare(strict_types=1); 来区分强制模式(默认)和严格模式。strict_types=1 是严格模式,strict_types=0是默认模式严格模式示例function a(int $a){return $a;}print(a('1'));输出结果为:PHP Fatal error: Uncaught TypeError: Argument 1 passed to a() must be of the type integer, string gi

2020-05-18 11:24:51 124

原创 非默认的数据库数据库迁移

生成迁移php Artisan 命令 来创建迁移:php artisan make:migration create_users_table生成的迁移文件将会被放置在 database/migrations 目录中。每个迁移文件的名称都包含了一个时间戳,users为表名。–table 和 --create 选项可用来指定数据表的名称,或是该迁移被执行时会创建的新数据表。这些选项需在预生...

2020-05-16 15:12:00 111

转载 php 观察者模式

观察者模式也可以叫做是发布-订阅模式,他的核心是当一个对象发生改变时,依赖他的对象都会得到通知。典型实现方式是:定义两个接口:观察者接口(需要同时执行的行为)和被观察者接口(主要进行的操作)定义两个类:分别实现上面两个接口。被观察者类注册自己需要通知的观察者被观察者类类某个业务逻辑发生时通知观察者对象,每个观察者执行自己的业务逻辑。php代码基本实现:#===================定义观察者、被观察者接口============/** * * 观察者接口(通知接口) *

2020-05-16 15:00:07 111

原创 MySQL索引

什么事索引索引是存储引擎用于快速找到记录的一种数据结构索引的分类根据数据结构分为:B+Tree索引、哈希索引、R-Tree索引、FULLTEXT索引根据物理存储分为:聚簇索引、非聚簇索引根据根据逻辑角度分为:普通索引 INDEX、唯一索引/非唯一索引 UNIQUE、主键索引 PRIMARKY KEY、全文索引 FULLTEXT、组合索引创建索引ALTER TABLE `table_name` ADD INDEX index_name (`name`) 普通索引最普通的索引,没有什么限

2020-05-16 11:21:04 88

转载 psr基础编码规范

PHP 代码文件 必须 以 <?php 或 <?= 标签开始;PHP 代码文件 必须 以 不带 BOM 的 UTF-8 编码;PHP 代码中 应该 只定义类、函数、常量等声明,或其他会产生 副作用 的操作(如:生成文件输出以及修改 .ini 配置文件等),二者只能选其一;命名空间以及类 必须 符合 PSR 的自动加载规范: [PSR-0(已废弃)或 PSR-4] 中的一个。类的命名 必须 遵循 StudlyCaps 大写开头的驼峰命名规范;类中的常量所有字母都 必须 大写,单词间用下划

2020-05-15 18:38:28 153

原创 nginx限流

nginx配置位置当你得到一个新的机器的时候,可能不知道nginx的位置,几条指令让你找到运行的nginx的位置which nginx这就是这台机器正在运行的nginx的路径,下面进入正题。使用场景应对网站高并发的情况方法1.限制访问频率(正常流量)2.限制访问频率(突增流量)3.限制并发数具体实现1.限制访问频率(正常流量)在http中添加 limit_req_zone key zone ratehttp {limit_req_zone $binary_remote_ad

2020-05-15 17:25:24 105

原创 缓存穿透,缓存雪崩,缓存击穿及解决方案

缓存穿透缓存穿透是指,请求获取的数据源不存在,Redis没有则会去请求数据库,数据库也没有,这时候大量请求可能会压垮数据库。缓存击穿缓存击穿是指,请求获取的某个redis key刚好过期,数据库中有数据,这时候大量的请求就落到的数据库上,造成数据库挂掉。缓存雪崩缓存雪崩是指,有大量的redis key过期,这时候大量请求落到数据库,造成数据库压力很大。缓存穿透的解决方案针对缓存穿透,可以直接给请求不存在的数据redis存一个null,但是要设置时间(30s)不能太长,太长会导致数据长时间不更新

2020-05-15 10:24:24 92

原创 Redis 分布式锁

分布式锁的作用锁的本质是互斥,保证任意时刻,同一客户端得到的都是同一个锁不会死锁,客户端持有锁期间崩溃,没有主动解锁,依然可以保证其他客户端获得锁加锁和解锁必须是同一客户端,客户端不能解其他客户端的锁分布式锁的实现原理在进程执行前进行判断,是否加锁成功,如果成功则进行下步操作如果不成功,则判断锁的值(时间戳)是否大于当前时间,如果大于当前时间,则获取锁失败不允许执行下步操作;如果锁的值(时间戳)小于当前时间,并且GETSET命令获取到的锁的旧值依然小于当前时间,则获取锁成功允许执行下步操作;

2020-05-14 18:53:23 61

原创 jQuery基础入门

jQuery是什么?他是一个js的框架,可以实现对元素的增删改查的操作。如何使用jQueryhttp://www.jquery.com官网下载库文件在html中加入<script src =" jquery.js “ type="text/javascript"></script>在script中写jquery脚本。一个小的知识点$(function(){})优先于 window.location=function(){} 运行,并且 window.location

2020-05-14 15:01:49 94

原创 form表单提交自动提交

先说一下作者遇到的问题,本地开发测试都可以完美运行,一到线上就开始ajax请求浏览器给cancel,虽然这个请求cancel了,但是controller里的代码执行了控制器代码:public function edit_index_article(){ $old_id = $_POST['old_id']; //加上新的 $id = intval($_POST['new_id']); $sort = intval($_POST['sort'

2020-05-13 18:25:07 683

原创 关于layui数据表格不兼容ios的问题

layui数据表格在安卓系统上可以完美运行,但是在ios系统上非常不友好,横向不自动适应并且没有了左右滑动的滚动条,解决办法如下。判断是不是ios操作系统,如果是的话就给layui数据表格加上宽和高可以解决问题。var browser = { versions: function () { var u = navigator.userAgent, a...

2019-08-14 20:46:55 2431 1

原创 pc端登录页面做移动端适配

$_SERVER[‘HTTP_USER_AGENT’];在PHP中HTTP_USER_AGENT是用来获取用户的相关信息的,包括用户使用的浏览器,操作系统等信息,获取信息如下格式Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36...

2019-08-14 20:32:34 889

原创 iframe页面实现局部刷新的效果

后台管理页面左侧和头部固定,中间内容区域是iframe写的页面跳转,实现F5刷新和ctrl+r强制刷新不回首页,还是在当前页面。在你想刷新的页面加入下代码监听刷新事件然后设置localStorage.setItem(‘iframe_src’,url)window.addEventListener("beforeunload", function (e) { var u...

2019-08-14 20:06:28 1017

原创 laravel导出excel表格

首先是表单代码<body <button type="button" style="float: right" class="layui-btn" id="prize_data_excel">导出excel</button></body><script>$('#prize_data_excel').click(funct...

2019-08-06 18:34:24 575

原创 Laravel自带分页&layui数据表格做分页

Laravel自带分页&layui数据表格做分页Laravel自带分页Layui数据表格做分页Laravel自带分页首先放上Laravel自带的分页代码。控制器代码:<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB;use App\Http\Controllers\Cont...

2019-08-02 17:52:03 2191

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除