MySQL 会发生死锁吗?(转) 2019-11-12 | 126 浏览 | 0 评论 MySQL 会发生死锁吗?(转) InnoDB引擎提供了行级锁,表锁。MyISAM提供了表锁,如题,MySQL会发生死锁吗?
select for update 是属于排他锁,也属于悲观锁 (转) 2019-11-12 | 19 浏览 | 0 评论 1、InnoDB行锁是通过给索引上的索引项加锁来实现的,只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁。
事务的四种隔离级别 2019-11-08 | 43 浏览 | 0 评论 数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。
deepin 执行 sudu 不需要密码设置介绍 2019-10-18 | 205 浏览 | 0 评论 ### 介绍 作为一款 linxu 桌面系统, deepin 还是挺符合开发需求的,但因为 linxu 系统中权限问题,大部分命令都得加上 sudo 执行,一次两次还好, 但用多了就不胜其烦,下面就来介绍如何修改 sudoers文件达到使用 sudo 不需要密码的效果。
thinkphp+queue+supervisor 2019-09-25 | 378 浏览 | 0 评论 ### 1.thinkhphp安装queue扩展 我使用的是composer安装(composer安装地址:[https://pkg.phpcomposer.com](https://links.jianshu.com/go?to=https%3A%2F%2Fpkg.phpcomposer.com)) 直接在项目根目录运行 `composer require topthink/think-queue`
centos7 安装 lnmp swoole 扩展 2019-09-25 | 264 浏览 | 0 评论 centos7 安装 lnmp swoole 扩展 centos7 安装 lnmp swoole 扩展
Github 的 Restful HTTP API 设计分解 2019-09-23 | 439 浏览 | 0 评论 Github 的 Restful HTTP API 设计分解 ## 什么是 RESTful RESTful 是一种软件设计风格,由 [Roy Fielding](http://roy.gbiv.com/) 在他的 [论文](http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm) 中提出,全称为 `Representational State Transfer`,直译为`表现层状态转移`,或许可以解释为`用 URL 定位资源,用 HTTP 动词描述操作`,不用太纠结于定义,接下来我们会详细讨论。
Jetbrains 系列产品 2019.2.2 最新激活方法 2019-09-19 | 3592 浏览 | 1 评论 大家熟知Jetbrains的话应该知道:他们家的所有产品升级到2018.2.1及以上版本后,先前可用的注册服务器都失效了,无法激活升级到最新版本体验最新黑科技。 这次要送的这份礼就是: Jetbrains全系列产品**2019.2.2**及以下版本(理论上适用于目前所有新老版本)最新注册服务器(License Server)的破解,可使用它来激活你手头上的Jetbrains IDE,具体支持产品和版本见下文的列表。
开发自己的 composer 包 2019-09-19 | 277 浏览 | 0 评论 开发自己的 composer 包 composer 是 PHP 用来管理依赖(dependency)关系的工具, 使用 composer 在业务中是非常常见的,比如使用 阿里 oss 的 sdk ,短信 sdk ,非常好用的微信sdk [*EasyWeChat*](https://www.baidu.com/link?url=wce7h59rCdF3R9KpqtjM07y9fL8BZBeL7F_TLTvgsP6sm2Y3d5fxEHmqb57s19bY&wd=&eqid=f2163e250011d462000000035d831eba) 都是使用composer 安装, 一个业务的形成就如同搭建积木一样,通过composer 引入各种组件完成,但很多 phper 依然不会开发自己的 composer 包(我也只是会用一下),下面是记录自己开发 composer 的过程。
PHP 伪异步实现 通过 CURL 实现 PHP 异步 2019-09-19 | 1695 浏览 | 0 评论 介绍一种PHP通过`curl`实现`异步`处理的方式,目前应用在我的项目中,使用之前需要安装`php_curl`扩展 因为curl请求的接口是同一个项目里面的,所以用这种方式比较方便, 1. `curl_setopt($ch, CURLOPT_TIMEOUT, 1);` 将curl超时时间设置为1s介绍一种PHP通过`curl`实现`异步`处理的方式,目前应用在我的项目中,使用之前需要安装`php_curl`扩展
(转载) Laravel 最佳实践 2019-09-16 | 215 浏览 | 0 评论 ### **单一职责原则** 一个类和一个方法应该只有一个责任。 例如: ``` public function getFullNameAttribute() { if (auth()->user() && auth()->user()->hasRole('client') && auth()->user()->isVerified()) { return 'Mr. ' . $this->first_name . ' ' . $this->middle_name . ' ' . $this->last_name; } else { return $this->first_name[0] . '. ' . $this->last_name; } } ```
(随笔) mysql count 和 union 2019-09-16 | 54 浏览 | 0 评论 myisam表使用count是非常快的,因为它的行数直接被系统存储起来了,当是加上条件后速度就慢了,比如查询id>1000的,总共几千万数据,这就非常慢了,这该如何优化呢,总数量 - id<1000的这就非常快了 group by 用以统计而不是去除重复数据,列需要索引统计需要分组,需要排序,沿着索引就是有序的 要想去重就要排序,排序就慢,用 union all
(随笔) mysql 优化 limit 过慢问题 2019-09-16 | 304 浏览 | 0 评论 > 在mysql中limit可以实现快速分页,但是如果数据到了几百万时我们的limit必须优化才能有效的合理的实现分页了,否则可能卡死你的服务器哦。 ### 当一个表数据有几百万的数据的时候成了问题! 如 select * from table limit 0,10 这个没有问题 当 limit 200000,10 的时候数据读取就很慢,可以按照一下方法解决 第一页会很快 PERCONA PERFORMANCE CONFERENCE 2009上,来自雅虎的几位工程师带来了一篇”EfficientPagination Using MySQL”的报告 limit10000,20的意思扫描满足条件的10020行,扔掉前面的10000行,返回最后的20行,问题就在这里。
GOLANG 中 HTTP 包默认路由匹配规则 2019-09-03 | 409 浏览 | 0 评论 ## 源码分析 我们知道最简单的建立http服务器代码基本上都是这样的: ```go http.HandleFunc('/', func(w http.ResponseWriter, r *http.Request){ fmt.Fprint(w, "Hello world") }) http.ListenAndServe(":8080", nil) ```
阿里云虚拟主机安装 thinkcmf,根目录显示的方法(超简单) 2019-08-30 | 7 浏览 | 0 评论 由于虚拟主机的根目录外没有权限创建文件夹,官方文档举的那个例子,其实用不了 不需要腾挪public里面的入口文件,直接在根目录放一个.htaccess,修改为以下内容,就可以,其它都不用改(**亲测可用**)
mysql8.0 导出文件 mysql5.7 1273 - Unknown collation: 'utf8mb4_0900_ai_ci' 解决方案 2019-08-30 | 12 浏览 | 0 评论 使用navicate12运行sql文件出错 报错: ``` [ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci' ```
php 多进程读写同一个文件锁的问题及 flock 详解 2019-08-30 | 165 浏览 | 1 评论 php 多进程读写同一个文件锁的问题及 flock 详解 ### 一、协同锁(advisory lock) 和 强制锁 (mandatory lock) 1、协同锁 协同锁要求参与操作的进程之间协同合作。假设进程“A”获得一个WRITE锁,并开始向文件中写入内容;此时,进程“B”并没有试图获取一个锁,它仍然可以打开文件并向文件中写入内容。在此过程中,进程“B”就是一个非合作进程。如果进程“B”试图获取一个锁,那么整个过程就是一个合作的过程,从而可以保证操作的“序列化”。 只有当参与操作的进程是协同合作的时候,协同锁才能发挥作用。协同锁有时也被称为“非强制”锁。 2、强制锁 强制锁不需要参与操作的进程之间保持协同合作。它利用内核来查检每个打开、读取、写入操作,从而保证在调用这些操作时不违反文件上的锁规则。