MySQL的innodb引擎是如何实现MVCC的

innodb会为每一行添加两个字段,分别表示该行创建的版本和删除的版本,填入的是事务的版本号,这个版本号随着事务的创建不断递增。在repeated read的隔离级别(事务的隔离级别请看这篇文章)下,具体各种数据库操作的实现: select:满足以下两个条件innodb会返回该行数据: 该行的...

2018-08-22 14:12:16

阅读数 74

评论数 0

分布式事务有两种解决方式

1.优先使用异步消息。上文已经说过,使用异步消息 Consumer 端需要实现幂等。幂等有两种方式,一种方式是业务逻辑保证幂等。比如接到支付成功的消息订单状态变成支付完成,如果当前状态是支付完成,则再收到一个支付成功的消息则说明消息重复了,直接作为消息成功处理。另外一种方式如果业务逻辑无法保证幂等...

2018-06-07 16:18:26

阅读数 456

评论数 0

深入解析Mysql 主从同步延迟原理及解决方案

MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响主服务器服务;③当主服务器出现问题时,可以切换到从服务器。相信大家对于这些好处已经非常了解了,在项目的部署中也采用这种方案。但是MySQL的...

2018-06-04 10:33:54

阅读数 83

评论数 0

Redis 的操作为什么是的原子性的详解

原子性原子性是数据库的事务中的特性。在数据库事务的情景下,原子性指的是:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。对于Redis而言,命令的原子性指的是:一个操作的不可以再分,操作要么执行,要么不执行。Redis操作原子性的原因Redis...

2018-05-31 10:35:05

阅读数 16099

评论数 0

悲观锁、乐观锁的区别及使用场景

定义:悲观锁(Pessimistic Lock): 每次获取数据的时候,都会担心数据被修改,所以每次获取数据的时候都会进行加锁,确保在自己使用的过程中数据不会被别人修改,使用完成后进行数据解锁。由于数据进行加锁,期间对该数据进行读写的其他线程都会进行等待。乐观锁(Optimistic Lock):...

2018-05-31 09:52:03

阅读数 2352

评论数 0

php网站 高并发时候如何优化?

利器1.多线程处理利用线程池设计,同时处理多个请求。线程池中线程个数=CPU个数+1;//对计算密集型的情况适用如果程序的逻辑处理需要对 DB,IO,redis 有操作。会增加CPU的占用率。高并发解决方案案例:当QPS达到2000时优化方案: 做业务分离,分布式存储1.流量优化  防盗链处理(去...

2018-04-20 17:55:44

阅读数 263

评论数 0

百万级别网站架构思路

1.运维服务器方面:2台web机器,机器配置是4核,16G的配置,主从,3台mysql,主从加备份数据库,resdis一台机器2.可以处理1秒钟1000次请求,如果预估是1秒钟4000次请求的话,则需要4台web机器,top命令查询load average如果cpu快达到4了就需要加机器了3.前端...

2018-04-08 17:44:29

阅读数 1060

评论数 2

Laravel框架特性分析

1.拥有一个简单的核心Container类,对于很多的php框架拥有的功能如路由请求拦截,视图渲染,权限控制,缓存等都是集成在框架内部实现的,但是laravel框架是独立实现的,这些功能可以理解为服务,通过provider(提供器),注册到核心容器container去实现的.Application...

2018-03-16 16:15:35

阅读数 321

评论数 0

数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释)

一、数据库事务隔离级别数据库事务的隔离级别有4个,由低到高依次为Read uncommitted 、Read committed 、Repeatable read 、Serializable ,这四个级别可以逐个解决脏读 、不可重复读 、幻读 这几类问题。√: 可能出现    ×: 不会出现脏读不...

2018-02-09 10:19:23

阅读数 109

评论数 0

MySQL中MyISAM与InnoDB区别及选择

2018-02-08 10:39:13

阅读数 330

评论数 0

MySQL分区与分片的差异

要了解分区与分片之间的差异,首先我们需要知道什么是分片与分区。 分片:分片Sharding 不是一门新技术,而是一个相对简朴的软件理念。众所周知,MySQL 5 之后才有了数据表分区功能,那么在此之前,很多 mysql 的潜在用户都对 MySQL 的扩展性有所顾虑,而是否具备分区功能就成...

2018-01-23 19:55:51

阅读数 2721

评论数 0

php 内核执行

网站访问量185万的pv ,6万多的uv 回息日        平时的是160万,2万多的uv 当用户代码输入给PHP内核去执行的时候, PHP内核会对PHP代码进行词法分析和语法分析, 词法分析是把PHP代码分割成一个个的“单元”(TOKEN), 语法分析则将这些“单元”转化为Zend E...

2018-01-16 17:53:37

阅读数 87

评论数 0

Redis持久化存储(AOF与RDB两种模式)

Redis中数据存储模式有2种:cache-only,persistence; cache-only即只做为“缓存”服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在“数据恢复”的手段,是一种安全性低/效率高/容易扩展的方式;persistence即为内存中的数据持久备份到磁盘...

2018-01-15 19:16:40

阅读数 114

评论数 0

XSS CSRF SQL 注入解决方法

安全方面: xss :跨站脚本攻击 csrf : 跨站请求伪造 Ddos:用很多机器对网址进行请求,把服务器某方面搞挂。 sql注入: 通过关键字或者非法字符的注入,实现一些对数据库一些非正常的操作 最简单的demo : 在用户登陆的时候,用户名和密码的判断,密码后加上 or 1=1 ...

2017-12-28 16:31:51

阅读数 211

评论数 0

系统性能定位和优化方法

一般先排除是不是网络的原因,假如打开百度网页快的话,就是内部系统的问题, 先使用top查看cpu利用率和磁盘,假如CPU高的话就是大量的SQL计算,数据库瓶颈高,慢查询导致。 Throughput ,吞吐量。也就是每秒钟可以处理的请求数,任务数。Latency, 系统延迟。也就...

2017-12-21 19:27:55

阅读数 125

评论数 0

PHP高级面试题

1.写出一个能创建多级目录的PHP函数       function createdir($path,$mode){              if (is_dir($path)){  //判断目录存在否,存在不创建                       echo "目录'&qu...

2017-11-22 11:29:09

阅读数 190

评论数 0

mysql into outline 导出数据到文件 --where

//导出投资数据 select *  from activity  where activity_id=62 INTO OUTFILE '/tmp/fifty_2017'  //导出18服务器少量数据的sql  mysqldump  -uroot -p12345678  ba...

2017-05-31 09:56:37

阅读数 467

评论数 0

微信授权登录获取用户信息的步骤

1、引导用户进入授权页面同意授权,获取code 2、通过code换取网页授权access_token(与基础支持中的access_token不同) 3、如果需要,开发者可以刷新网页授权access_token,避免过期 4、通过网页授权access_token和openid获取用户基本信息(支持U...

2017-05-03 16:11:30

阅读数 2733

评论数 0

MySQL通过binlog来恢复数据

一、什么是binlog 1、binlog基本定义:二进制日志,也成为二进制日志,记录对数据发生或潜在发生更改的SQL语句,并以二进制的形式保存在磁盘中; 二进制日志的信息: 文件位置:默认存放位置为数据库文件所在目录下 文件的命名方式: 名称为hostname-bin.xx...

2017-04-19 14:46:26

阅读数 176

评论数 0

PHP文件的执行和PHP 的 autoload 机制的实现

PHP文件的执行分为两个独立的过程,第一步是将PHP文件编译成普通称之为OPCODE的字节码序列(实际上是编译成一个叫做zend_op_array的字节数组),第二步是由一个虚拟机来执行这些OPCODE。PHP的所有行为都是由这些OPCODE来实现的 PHP5为这个问题提供了一个解决方案...

2017-02-07 16:11:03

阅读数 184

评论数 0

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