自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 问答 (2)
  • 收藏
  • 关注

原创 MySQML进阶—MySQL优化explain(四)

MySQL优化explain详细资料

2021-12-12 22:56:31 446

原创 MySQML进阶—MySQL的索引(三)

一、索引简介1、什么是索引索引是帮助MySQL高效获取数据的数据结构(索引是一种数据结构)。简单理解:排好序的快速查找数据结构(排序、查找)。都是指B树(多路搜索树,并不一定是二叉的)结构组织的索引。其中聚集索引,次要索引,覆盖索引,复合索引,前缀索引,唯一索引默认都输使用B+树索引。还有哈希索引(hash index)等。目的提高查询效率,类比字典,图书馆的条形码。注意:索引本身很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上2、索引的优势和劣势优势:a.

2021-12-12 14:46:20 789 2

原创 MySQML进阶—MySql的SQL执行顺序和JOIN七种理论(二)

一、SQL性能下降的原因(执行时间长、等待时间长)查询语句写的烂 索引失效(单值索引,复合索引) 关联查询太多Join 服务器调优及各个参数设置(缓冲,线程数等二、SQL执行加载顺序手写机读总结三、七种Join理论INNER JOIN(结果显示两表公共部分)LEFT JOIN(左联,右表不满足的部分补null显示)RIGHT JOIN(右联,左边不满足的部分补null显示)left join (表左关联,显示左表独有的数据,...

2021-12-12 11:27:29 418

原创 MySQML进阶—MySQL逻辑结构(一)

逻辑结构图如下数据库结构分为四层,如下图一、连接层提供客户端和连接服务,包含本地Sock通信和大多数基于客户端/服务端工具实现的类似TCP/IP的通信,主要完成一些类似于连接处理、授权认证及相关安全方案,在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程,同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。注:分配数据库连接线程池,控制数据库的连接和关闭等资源。科普:线程,程序执行流的最小执行单位,是行程中的实际运作单位.

2021-12-12 09:31:14 578

原创 thinkphp6中Redis的使用。

1.安装redisThinkPHP内置支持的缓存类型包括file、memcache、wincache、sqlite、redis。ThinkPHP默认使用自带的采用think\Cache类。(PHPstudy自带redis)如果没有跟着下面步骤:下载地址:https://github.com/tporadowski/redis/releases。a.解压到你自己命名的磁盘(最好不好C盘)b.如何检验是否有安装,按住win+r,输入cmd,在输入进入DOC操作系统窗口。在操作窗口切换到安装redis的目

2021-08-20 11:55:07 6985

原创 PHP基础知识总结(面试常见)

1、 什么是面向对象?主要特征是什么?面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。主要特征:封装、继承、多态。2、SESSION 与 COOKIE的区别是什么,请从http协议,产生的原因与作用说明?1、http无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的页面不能看做是同一个用户。2、SESSION存储在服务器端,COOKIE保存在客户端。Session比较安全,cookie用某些手段可以修改,不安全。Session依赖于cookie进

2021-08-19 17:25:41 413

原创 常见的关系型数据库与非关系型数据库对比详解。

1、 数据库分为关系型数据库和非关系型数据库。关系型数据库(一表或多表):Oracle:是一个开放式商品化关系型数据库管理系统DB2:应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下Microsoft SQL Server:全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。MySQL:是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。(常用)

2021-08-19 15:43:06 2149

原创 MySQL软删除是否能使用外键?

在开发项目的过程中,MySQL设计数据库要遵守最基本的设计要求:1、唯一约束:控制某列不能出现重复的值(作为主键,唯一性,unique 索引设置)。2、非空约束:控制某列不能出现空值 (not null)3、检查约束:控制某一列数据的范围(check)4、主键约束:表格的序号列的一个约束,表现上非空+唯一,其实是数据的唯一的编号分表,5、分表:减少冗余,有利于维护和修改。如何设置外键,请看...

2021-07-20 14:56:30 261

原创 Mysql外键如何使用(CASCADE、NO ACTION、RESTRICT、SET NULL)。

Navicat Premium 15建立物理模型的时候,表与表之间的关系都是关联起来,而关联的时候会设置外键。如下图所示:在删除时或者更新的时有四个选项分别是CASCADE、NO ACTION、RESTRICT、SET NULL。CASCADE在父表上update/delete记录时,同步update/delete到子表的匹配记录SET NULL在父表上update/delete记录时,将子表上匹配记录的列设为null (要注意子表的外键列不能为not null)NO ACTION如果子表中

2021-07-16 17:08:24 4227

原创 ThinkPHP6 多表模型关联,如何查询分页返回数据。

ThinkPHP 多表模型关联,如何查询分页返回数据。

2021-07-15 14:39:18 954

原创 如何区分和使用,构造函数__construct()和__initialize()。

1、什么是构造函数?构造函数:在创建对象时初始化对象(类), 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。class Boy{ //定义变量 public $age ; public $height; public $sex;}//结果$boy = new Boy();$boy->age = 18;$boy->height = '180';$boy->sex = '男';如果变量很多的话,工作量就会很多,所有引入了构造方法。该方法可以

2021-07-13 16:23:35 251 2

转载 MySQL优化之索引

MySQL优化,通过索引优化提高查询效率。

2021-06-10 17:06:21 103

转载 MySQL优化之explain详解

在开发中,很多时候存在一些查询时间比较久的MySQL语句,查看该SQL语句是否使用索引,有没有全表扫描。通过explain命令来查看。语法-- 实际SQL,查找用户名为Jefabc的员工select * from emp where name = 'abc';-- 查看SQL是否使用索引,前面加上explain即可explain select * from emp where name = 'abc';expain出来的信息有10列,分别是id、select_type、table、type

2021-06-10 09:53:07 141

原创 设计模式——创建型/工厂模式(Factory Method)

问题:1、什么是工厂模式2、工厂模式什么时候用到(应用场景)3、工厂模式是怎样的。4、工厂模式有什么优点跟确定1、什么是工厂模式这里是引用

2021-06-04 16:31:06 117

原创 开启设计模式学习之路

=如何快速的学习掌握。我自己的一种学习方法,带着目标去寻找需要的答案,要理解明白。1、什么是设计模式。2、设计模式有什么用。3、有什么设计模式。4、每种设计模式对应的应用场景是什么。5、如何将知识点如何贯通。1、什么是设计模式?设计模式是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。2、设计模式有什么作用。设计模式主要的作用是让代码能重复使用,提供代码的扩展性和灵活性,提高开发效

2021-06-04 10:08:11 76

原创 ThinkPHP6 多应用模式下,开发多平台项目。

前提:一个项目开发包含小程序,微信公众号,PC端,安卓,IOS。如利用何Thinkphp6去开发?

2021-05-28 17:51:02 371

原创 书籍归纳

Java《设计模式之禅(完整高清版)》《重构_改善既有代码的设计》《微服务架构与实践(王磊著)完整版》《网络爬虫入门到精通》《图解HTTP》《架构探险 从零开始写javaweb框架》《数据结构与算法 Java版》《[JAVA解惑](美)布洛赫》《[Java语言程序设计-进阶篇(原书第8版)]》《[深入理解Java虚拟机:JVM高级特性与最佳实践]》《Apache服务器配置与使用工作笔记》《Effective Java 中文第二版》《Head First Java

2021-04-02 09:43:24 177

转载 LNMP与LAMP有哪些区别,安装哪个好?

lamp 的全称是linux + apache + mysql +phplnmp 的全称是linux + nginx + mysql + php (国外喜欢简称为LEMP,搜英文资料需要搜LEMP)LAMP:使用的是Apache,Apache是世界是用排名第一的Web服务器软件,其几乎可以在所有广泛使用的计算机平台上运营,由于其跨平台和安全性被广泛使用,是最流行的Web服务端软件之一。LNMP:使用的是Nginx,Nginx是一款高性能额Http和反向代理服务器,也是一个AMAP/POP3/SMT.

2021-03-03 08:53:39 3239

原创 composer 下载包慢的解决方法

方法一: 修改 composer 的全局配置文件(推荐方式)打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:composer config -g repo.packagist composer https://packagist.phpcomposer.com方法二: 修改当前项目的 composer.json 配置文件:打开命令行窗口(windows用户)或控制台(Linux、Mac 用户),进入你的项目的根目录(也就是 composer.json 文件所

2021-01-30 11:50:32 665

原创 PhpStrom连接宝塔的ftp服务实现代码自动上传

首先在宝塔上创建FTP账号密码,选择对应的目录,操作如下图(记住账号密码)。第二步,新建一个目录文件,作用是下载宝塔上的文件夹。第三步,打开phpstorm, 跟着下图操作没有问题第四步,在phpstorm填写账号密码第五步,配置成功后,下载等待。等待下载成功就可以,编辑ctrl+s保存自动上传...

2020-12-14 12:02:00 1078

原创 初级程序员与高级程序员的差距在哪里?

今天去面试一家集团的公司,最后的结果不用猜想都知道是失败告终。回来的路上,我一直在想失败的原因在哪里。一直没有想明白,没有一个好的师傅,只有自己。从小白到精通,也只能靠自己。方向很重要,一旦失去的方向,脚步就会停下来,能力也会停下来。我自认为笨,没有很多人对程序这一行业的天赋高。自认为努力点,就会追上别人。正所谓一句话,选择比努力更重要!选择一个方向真的很重要。事实再次论证了这一点,时间对于一身来说真的很短暂,平淡与精彩只是一瞬间的选择。工作很多年的程序员,开发了很多,但是从来没有问过自己,程序真的

2020-11-21 15:35:11 250

原创 Thinkphp6知识点十——日志处理

//config/log.php配置return [ // 默认日志记录通道 'default' => env('log.channel', 'file'), // 日志记录级别 'level' => [], // 日志类型记录的通道 ['error'=>'email',...] 'type_channel' => [], // 关闭全局日志写入 'close' => f.

2020-08-18 17:03:07 1897

原创 Thinkphp6知识点九——视图

视图:模板赋值与模板输出namespace app\controller;use think\facade\View;class Index{ //第一种输出方法 public function index() { // 模板变量赋值 View::assign('name','ThinkPHP'); View::assign('email','thinkphp@qq.com'); // 或者批量赋值 .

2020-08-18 16:27:28 1118

原创 Thinkphp6知识点九——模型关联(一对多关联)

语法:hasMany('关联模型','当前模型外键','当前模型主键'),例如:hasMany(Comments::class, 'article_id', 'id')<?phpnamespace app\model;use think\Model;class Article extends Model { public function comments() { /** * hasMany('关联模型', '关联模型外键','当前模型主键'

2020-08-18 16:02:28 3067 3

原创 Thinkphp6知识点八——模型关联(一对一关联&相对关联)反向关联

附表关联主表称为反向关联,又称为相对关联语法:belongsTo('关联模型(表)','当前模型外键', '关联模型主键');例如:ariticle模型里面belongsTo(Category::class, 'category_id', 'id')<?phpnamespace app\model;use think\Model;class article extends Model { public function category() { ...

2020-08-18 15:16:09 1442

原创 Thinkphp6知识点七——模型关联(一对一关联)

模型关联:关联模型就是将表与表之间进行关联和对象化,更高效的操作数据。一对一关联:用户表与用户资料表关联,一个用户关联一条用户资料数据。语法:hasOne('关联模型(表)',当前模型外键(关联表的相联系的外键),当前模型主键)<?phpnamespace app\model;use think\Model;class User extends Model{ public function profile() { // hasOne('关.

2020-08-18 14:48:13 2465

原创 Thinkphp6知识点六——模型

模型 (Model类名对应数据表名,不然就定义model的数据表name属性,主键设置$pk)区别:模型数据的新增和数据库的新增数据有所区别,数据库的新增只是单纯的写入给定的数据,而模型的数据写入会包含修改器、自动完成以及模型事件等环节。单条数据增加save()$user = new User;$user->name = 'thinkphp';$user->email = 'thinkphp@qq.com';$user->save();

2020-08-18 14:47:44 1704

原创 Thinkphp6知识点五——控制器/模型/视图

控制器(命名空间)单应用<?phpnamespace app\controller;class User { public function login() { return 'login'; }}//访问地址http://localhost/user/login多应用<?phpnamespace app\shop\controller;class User{ public function login

2020-08-17 17:22:06 1145

原创 Thinkphp6知识点四——路由

基础路由语法:Route::rule('路由表达式', '路由地址', '请求类型');例如:Route::rule('new/:id','News/read');//访问http://serverName/new/5//会自动路由到http://serverName/news/read/id/5指定类型的路由(GET/POST/PUT/DELETE/PATCH/*)Route::rule('new/:id', 'News/update', 'POST');Rout

2020-08-17 15:23:30 1425

原创 Thinkphp6知识点三——绑定与服务,门面,中间件,事件

绑定函数:bind()——快速调用类库,app()——助手函数,对已绑定的类,快速实例化// 方法一、绑定类库标识(将类库绑定变量名)$this->app->bind('Cache1', 'think\Cache');//实例变量$cache1 = app('Cache1');//调用方法$cache1->set('name','12313');//输出echo $cache1->get('name');//结果12313//方法二、使用助手函数.

2020-08-13 16:41:04 1046

原创 Thinkphp6 知识点二—— 容器和依赖注入

1、什么是容器?那么装的是什么?为什么要这么做? 字面意思理解为装东西的器皿。 装的是类实例化的对象。 第一点使用对象方便,第二点解耦。2、什么是依赖注入?依赖注入是指对类的依赖通过构造器完成自动注入。<?phpnamespace app\controller;use think\Request;//必须引用class Index{ protected $req; //将Request的类通过构造器自动注入,实...

2020-08-13 10:26:14 1855

原创 thinkphp6 知识点— ——单应用模式与多应用模式。

单应用模式:开始下载包的时候就是单应用多应用模式:需要更新,执行以下命令composer require topthink/think-multi-app备注:每个应用相对保持独立,并且可以支持多个入口文件,应用下面还可以通过多级控制器来维护控制器分组。如果入口文件名和应用不一致,你的后台admin应用,入口文件名使用了test.php,修改入口文件,申明应用// [ 应用入口文件 ]namespace think;require __DIR__ . '/../v...

2020-08-13 09:22:23 3113

原创 访问量大的时候引起的雪崩,穿透,击穿问题,如何解决?

缓存雪崩定义:是指某一个时间段,缓存集中过期失效。解决办法:1、把缓存的过期时间设置不同的时间。2、缓存失效后,通过加锁或者队列来控制读取数据库写入缓存的线程数量。3、数据预热,先把可能防伪你的数据预先访问一遍,这部分大量访问的数据加载到缓存中。缓存穿透定义:指查询一个数据库一定不存在的数据。正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,在对数据库进行查询,并把查询到的对象,放进缓存。如果数据库查询对象为空,则不放进缓存。解决办法:缓存空对象,如果查

2020-06-16 19:23:47 362

原创 Mysql与Nosql的区别与应用场景。

数据库类型 特性 优点 缺点 存储方式 查询语句 应用场景 关系型数据库 SQL Server,Oracle,MySQL 1、关系型数据库,是指采用了关系模型来组织 数据的数据库; 2、关系型数据库的最大特点就是事务的一致性; 3、简单来说,关系模型指的就是二维表格模型, 而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模...

2020-06-16 17:06:04 1809

原创 让代码变成程序员的艺术(小白必须看)

刚刚接触IT行业的程序员都会有一个痛点,自己写的代码觉得很好,但是别人看你的代码的时候,总觉得太乱了,没有规范。后面维护的程序员就痛苦了。为什么我会提出这个问题,我就是从这一样走过来。今天推荐看的一本书《代码整洁之道》。思维导图总结:代码是团队沟通方式。List item...

2020-05-30 16:24:39 486

原创 MySQL优化,读写分离(主从分离)三

总结:MySQL优化主要从数据表的设计,SQL语句,服务器设备,数据读写这几个方面来优化。前面两篇已经写了,这篇主要讲MySQL数据读写分离,意思是,那台服务器是主服务器,负责写,那台服务器是从服务器,负责写。前提:准备三台服务器原理:通过mysql-proxy,amoeba作为中间件,往代理机器发送,代理软件进行判断发往不同的mysql服务器。如下图(有点像redis哨兵模式)服务器:192.168.101 # 主库-只写192.168.102 # 从库-只读192.168.100 .

2020-05-11 16:39:51 218

原创 MySQL优化,一主多从配置(二)

续上篇,上篇讲到的是如何在数据库结构上设置做优化。本篇是从硬件+配置的角度去优化,第三篇主要是如何实现读写分离。前提准备三台服务器或者多台服务器。一、工作原理主服务器负责写,从服务器负责读。工作原理如下图:原理:主服务器的操作动作生成binlog日志,从服务器通过读取binlog解析relaylog,从服务器再执行replaylog,生产数据在从服务上。二、linux系统上配置...

2020-04-30 14:26:53 195

原创 开发项目的时候到底用那种模式, MVC,MVP 和 MVVM ?

前提:最近自己想写一套系统出来,看着别人写的代码,总觉得为什么别人写得这么好,条理这么清晰。可能是我学的语言问题或者知识面不够吧。建议学语言先学强语言,强语言学会了,弱语言基本都不是问题。接下来了解一下 MVC,MVP 和 MVVM,还有业务层,逻辑层,数据层是怎么运作的。MVCC:控制器(Controller)——应用程序中处理用户交互的部分M:模型(Model)——应用程序数据逻辑...

2020-04-29 11:50:47 452

原创 Mysql优化,是什么,如何优化(一)

分享经验以前的技术活都是有个师傅一把手教导,现在技术活只能靠自己去学习。我作为程序员,要把握两点,一是市场,二是实战技术。市场作为导向,而实战技术才是技术人员最大的财富。我经常会去看行业的招聘信息。因为那里可以看到市场需要技术人员的技术要达到什么程度,懂得什么技术。如果你懂了完全可以胜任,如果招聘信息上,你看不懂的技术,正是你要需要弥补的知识。MySQL优化要从数据库设计、查询、索引、存储...

2020-04-23 11:11:11 373

原创 如何将小程序与微信公众号数据互通?

前提最近开发项目遇到问题,客户在微信公众号授权了,到小程序上面,个人的操作,消费记录等信息两个平台同步。根据微信公众号的开发文档,微信公众号授权的时候获取的返回数据,如下图:小程序授权获取用户的信息,如下图:微信公众号与小程序唯一识别是UnionID是互通的。根据文档说明:开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是...

2020-04-22 15:17:33 4681

空空如也

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

TA关注的人

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