<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Penge_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Penge_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Penge_]]></copyright><item><title><![CDATA[composer 版本兼容]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/114929623</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/114929623</guid><author>Penge_</author><pubDate>Wed, 17 Mar 2021 14:34:21 +0800</pubDate><description><![CDATA[Your lock file does not contain a compatible set of packages. Please run composer update

2周前 ⋅0

估计是PHP版本不符合composer.json里面需要的版本，那么可以在执行composer命名时，可以设置忽略版本匹配。

安装命名：


composer install --ignore-platform-reqs

更新命名：


composer update --ignore-platform-r..]]></description><category></category></item><item><title><![CDATA[MySQL性能优化汇总]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/108715040</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/108715040</guid><author>Penge_</author><pubDate>Mon, 21 Sep 2020 17:47:02 +0800</pubDate><description><![CDATA[年少不知优化苦，遇坑方知优化难。 ——村口王大爷

本文内容导图如下：



当然，本篇也是关于性能优化的，那性能优化就应该一把梭子吗？还是要符合一些规范和原则呢？

所以，在开始之前（MySQL 优化），咱们先来聊聊性能优化的一些原则。

性能优化原则和分类

性能优化一般可以分为：

主动优化
	被动优化
所谓的主动优化是指不需要外力的推动而自发进行的一种行为，比如当服务没有明显的卡顿、宕机或者硬件指标异常的情况下，自我出发去优化的行为，就可以称之为主动优化。

而被动优化刚好与主动优化相反，它是指在.]]></description><category></category></item><item><title><![CDATA[MySQL锁的问题]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/108346877</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/108346877</guid><author>Penge_</author><pubDate>Tue, 01 Sep 2020 17:20:47 +0800</pubDate><description><![CDATA[什么是锁

面试官：: 你是来参加面试的吧？吒吒辉：不 不 不，我是来参加复试呢。

面试官：: 看到上次别人点评，MySQL优化还阔以。那你先谈谈对锁的理解？

吒吒辉：嘿嘿，还好！

锁是计算机在进行多 进程、线程执行调度时强行限制资源访问的同步机制，用于在并发访问时保证数据的一致性、有效性；


锁是在执行多线程时，用于强行限制资源访问的同步机制，即用在并发控制中保证对互斥的要求。

一般的锁是建议锁（advisory lock），每个线程在访问对应资源前都需获取锁的信息，再根据信息决定是否可以访..]]></description><category></category></item><item><title><![CDATA[秒杀系统设计(前端设计，网关的作用，解决Redis的并发竞争，数据的同步方式，MQ的作用)]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/108006579</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/108006579</guid><author>Penge_</author><pubDate>Fri, 14 Aug 2020 15:59:02 +0800</pubDate><description><![CDATA[背景

我之前写过一个秒杀系统的文章不过有些许瑕疵，所以我准备在之前的基础上进行二次创作，不过让我决心二创秒杀系统的原因是我最近面试了很多读者，动不动就是秒杀系统把我整蒙蔽了，我懵的主要是秒杀系统的细节大家都不知道，甚至不知道电商公司一个秒杀系统的组成部分。

我之前在某电商公司就是做电商活动的，所以这样的场景和很多解决方案我是比较清楚的，那我就从我自身去带着大家看看一个秒杀的设计细节以及中间各种解决方案的利弊，以下就是我设计的秒杀系统，几乎涵盖了市面上所有秒杀的实现细节：



正文

首先设计一个系统之]]></description><category></category></item><item><title><![CDATA[数据库设计时，是否要设置外键?]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/107906055</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/107906055</guid><author>Penge_</author><pubDate>Mon, 10 Aug 2020 15:38:48 +0800</pubDate><description><![CDATA[外键的定义：是数据库提供的一种完整性约束，保证数据的完整性。

在许多数据库的书上也会介绍到，然而对于外键这个完整性性约束究竟应该在数据库端实现，还是在项目业务端实现很多人有着不同的意见。

　 在查看了很多大牛的文章后我总结出来如下：

个人开发（小型应用）、数据库读写资源充足（数据库并发低），集中式数据库系统，则应该使用外键保障数据的完整性，减少开发端的负担，有利于数据库开发与程序开发的分离。

　　团队开发（大型应用）。数据库的读写成为瓶颈（数据库并发高），分布式数据库系统（分割式存储数据），（如阿.]]></description><category></category></item><item><title><![CDATA[php如何确保上传图片的安全]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/107913037</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/107913037</guid><author>Penge_</author><pubDate>Mon, 10 Aug 2020 15:37:47 +0800</pubDate><description><![CDATA[1、上传的时候不依靠Content-Type来做文档类型验证，可以参考我在这里的回答如何判断浏览器上传文件的真实类型？

如果是图片可以通过 getimagesize() 获取图片的 mime，这样便不依赖

普通文件可以通过：

1. finfo 扩展

2. mime_content_type()

3. 调用linux命令 exec("file -bi ".escapeshellarg($this-&gt;file_src_pathname))来检测

选择合适的一种检测文档类型已经够用了。

图片上]]></description><category></category></item><item><title><![CDATA[MySQL的Explain应用]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/106071911</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/106071911</guid><author>Penge_</author><pubDate>Tue, 12 May 2020 11:08:26 +0800</pubDate><description><![CDATA[在日常工作中，我们会有时会开慢查询去记录一些执行时间比较久的SQL语句，找出这些SQL语句并不意味着完事了，些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划，查看该SQL语句有没有使用上了索引，有没有做全表扫描，这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器，还可以获得很多可能被优化器考虑到的访问策略的细节，以及当运行SQL语句时哪种策略预计会被优化器采用。


-- 实际SQL，查找用户名为Jefabc的员工
select * from emp ]]></description><category></category></item><item><title><![CDATA[sphinx多属性查找sql_attr_multi]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/90056029</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/90056029</guid><author>Penge_</author><pubDate>Fri, 10 May 2019 12:49:34 +0800</pubDate><description><![CDATA[需求描述

mysql中，每一个文档都有多个标签，查询时可以筛选一个标签也可以筛选同时拥有多个标签的文档。

数据示例


文档         标签
1             1,2,3,4,5
2             2,3,4,5,6
3             3,4,5,6,7
4             4,5,6,7,8
5             5,6,7,8,9

注意：...]]></description><category></category></item><item><title><![CDATA[【Linux】crontab 按分钟小时天月的执行命令写法（附实例）]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/89202916</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/89202916</guid><author>Penge_</author><pubDate>Thu, 11 Apr 2019 09:32:30 +0800</pubDate><description><![CDATA[crontab -l

crontab -e



每五分钟执行 */5 * * * *

每小时执行 0 * * * *

每2小时执行 0 */2 * * *

每天执行 0 0 * * *

每周执行0 0 * * 0

每月执行 0 0 1 * *

每年执行 0 0 1 1 *







星号（*）：代表所...]]></description><category></category></item><item><title><![CDATA[HTTP请求行、请求头、请求体详解]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/80611905</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/80611905</guid><author>Penge_</author><pubDate>Thu, 07 Jun 2018 16:58:39 +0800</pubDate><description><![CDATA[HTTP请求报文解剖 HTTP请求报文由3部分组成（请求行+请求头+请求体）：  下面是一个实际的请求报文：  ①是请求方法，GET和POST是最常见的HTTP方法，除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。不过，当前的大多数浏览器只支持GET和POST，Spring 3.0提供了一个HiddenHttpMethodFilter，允许你通过“_method”的表单参...]]></description><category></category></item><item><title><![CDATA[MySQL 通用查询日志和慢查询日志开启]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/80570562</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/80570562</guid><author>Penge_</author><pubDate>Mon, 04 Jun 2018 17:40:33 +0800</pubDate><description><![CDATA[MySQL中的日志包括：错误日志、二进制日志、通用查询日志、慢查询日志等等。这里主要介绍下比较常用的两个功能：通用查询日志和慢查询日志。1）通用查询日志：记录建立的客户端连接和执行的语句。2）慢查询日志：记录所有执行时间超过long_query_time秒的所有查询或者不使用索引的查询（1）通用查询日志在学习通用日志查询时，需要知道两个数据库中的常用命令：1） showvariables like...]]></description><category></category></item><item><title><![CDATA[linux 下安装WDCP(LANMP环境一起安装)]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/79506103</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/79506103</guid><author>Penge_</author><pubDate>Sat, 10 Mar 2018 13:55:30 +0800</pubDate><description><![CDATA[1. 打开Xshell软件2. SSH命令执行：yum install -y wgetwget http://dl.wdlinux.cn/files/lanmp_v3.2.tar.gztar zxvf lanmp_v3.2.tar.gz       sh lanmp.sh然后坐等安装结束 .....安装完成就可以进入登录界面操作http://ip:8080默认账号为admin，密码为wdlinux...]]></description><category></category></item><item><title><![CDATA[MySql避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/78683494</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/78683494</guid><author>Penge_</author><pubDate>Fri, 01 Dec 2017 09:51:37 +0800</pubDate><description><![CDATA[案一：使用ignore关键字

如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用：



 代码如下










1

1 INSERT IGNORE INTO `table_name` (`email`, `phone`, `user_id`) VALUES ('test9@163.com', '9999]]></description><category></category></item><item><title><![CDATA[mysql数据库误删除后的数据恢复操作说明]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/78490836</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/78490836</guid><author>Penge_</author><pubDate>Thu, 09 Nov 2017 16:08:01 +0800</pubDate><description><![CDATA[在日常运维工作中，对于mysql数据库的备份是至关重要的！数据库对于网站的重要性使得我们对mysql数据的管理不容有失！
然后，是人总难免会犯错误，说不定哪天大脑短路了来个误操作把数据库给删除了，怎么办？？？

下面，就mysql数据库误删除后的恢复方案进行说明。

一、工作场景
（1）MySQL数据库每晚12:00自动完全备份。
（2）某天早上上班，9点的时候，一同事犯晕drop了]]></description><category></category></item><item><title><![CDATA[window环境下编写定时器(执行php文件执行)]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/78487237</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/78487237</guid><author>Penge_</author><pubDate>Thu, 09 Nov 2017 11:02:39 +0800</pubDate><description><![CDATA[干货就应该直接进入正题


执行流程 : 定时器任务定时执行bat文件->执行php文件->执行方法


第一步,创建好目录和文件





polling.bat 文件内容:


D:\SOFT_PHP_PACKAGE\php5.5\php.exe -q D:\timing\polling_page_number\polling.php



polling]]></description><category></category></item><item><title><![CDATA[mysql 乐观锁和悲观锁的区别,以及乐观锁实现]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/78287693</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/78287693</guid><author>Penge_</author><pubDate>Thu, 19 Oct 2017 17:53:24 +0800</pubDate><description><![CDATA[一、为什么需要锁（并发控制）？


      在多用户环境中，在同一时间可能会有多个用户更新相同的记录，这会产生冲突。这就是著名的并发性问题。
      典型的冲突有：
        1.丢失更新：一个事务的更新覆盖了其它事务的更新结果，就是所谓的更新丢失。例如：用户A把值从6改为2，用户B把值从2改为6，则用户A丢失了他的更新。
        2.脏读：当一个事务读取其它完成]]></description><category></category></item><item><title><![CDATA[php 对接paypal的SDK实现支付详解(源代码)]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/78271314</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/78271314</guid><author>Penge_</author><pubDate>Wed, 18 Oct 2017 11:56:49 +0800</pubDate><description><![CDATA[paypal支付接口准备工作

首先去申请一个paypal账号，https://www.paypal.com/。申请完毕并登录，进入https://developer.paypal.com/developer/accounts/。即可看到你申请账号自动配属的两个测试账号，账号类别分别是：BUSINESS和PERSONAL，PERSONAL的账号里面有$9999，测试费用，表激动。
下面去给两]]></description><category></category></item><item><title><![CDATA[linux中安装mysql，如何开启远程访问权限]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/78200133</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/78200133</guid><author>Penge_</author><pubDate>Wed, 11 Oct 2017 09:41:22 +0800</pubDate><description><![CDATA[安装步骤就不多说了,直接进入正题:




打开MySQL数据库远程访问的权限

链接mysql,运行

#mysql -uroot -p123456

切换数据库

#use mysql

查询mysql用户信息

#SELECT User, Password ,Host From user;

开启任何主机都能链接mysql服务器

#GRANT AL]]></description><category></category></item><item><title><![CDATA[Linux下修改MySQL用户（root）密码]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/78184287</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/78184287</guid><author>Penge_</author><pubDate>Mon, 09 Oct 2017 16:53:39 +0800</pubDate><description><![CDATA[以下命令适合修改任何mysql用户，仅以root为例。




一、拥有原来的myql的root的密码；





1

2

3

4

5

6




# mysql -uroot -p

Enter password: 【输入原来的密码】（如果安装完mysql第一次设置root密码，则直接回车）

mysql>use mysql;]]></description><category></category></item><item><title><![CDATA[lnmp环境搭建]]></title><link>https://blog.youkuaiyun.com/Penge_/article/details/78151834</link><guid>https://blog.youkuaiyun.com/Penge_/article/details/78151834</guid><author>Penge_</author><pubDate>Mon, 02 Oct 2017 17:48:46 +0800</pubDate><description><![CDATA[1、搭建 LNMP 环境




安装 Nginx, MySQL  PHP 软件包


安装
 Nginx, MySQL 和 PHP 软件包

执行指令：
yum install -y nginx mariadb-server mariadb php php-fpm php-mysql
启动并检查 Nginx 和 PHP 的安装情况修改 /etc/nginx/nginx.]]></description><category></category></item></channel></rss>