MySQL支持事务,所以保证数据可靠的前提是对数据的修改事务已经成功提交 这个问题可以解释为'MySQL InnoDB是如何保证事务C(一致性)D(持久性)性的?' 可能出现的两种情况: (一致性)数据不一致. 例如本来在一个事务里要执行两条SQL,结果系统断电导致只有一条SQL执行成功了 (持久性)写入数据丢失. 本来要写入的两条数据由于系统断电数据都没有写进去 MySQL遵循日志先行的准则,写日志要先于写数据.这里的日志包括redo日志和undo日志.redo日志用于记录数据更新后的的值,u…
PHP中为我们提供了各种各样的系统函数来实现我们需要的各种功能,那么,在不使用系统函数的情况下我们要怎样来实现这些功能呢?以下就是几种系统函数的实现方式. 首先,我们来定义一个数组: $arr= array(1,2,3,4,5,6,"a"=>7,"b"=>8,"c"=>"haha",10); 以下是对于这个数组可以使用的系统函数和不使用系统函数获得同样效果的方式: 1.返回数组的所有的值,返回数组.(arra…
一,什么情况下使用索引1. 表的主关键字 自动建立唯一索引 2. 表的字段唯一约束 ORACLE利用索引来保证数据的完整性 3. 直接条件查询的字段 在SQL中用于条件约束的字段 如zl_yhjbqk(用户基本情况)中的qc_bh(区册编号) select * from zl_yhjbqk where qc_bh=’7001’ 4. 查询中与其它表关联的字段 字段常常建立了外键关系 如zl_ydcf(用电成份)中的jldb_bh(计量点表编号) select * from zl_ydcf a,z…
std::call_once的作用是很简单的, 就是保证函数或者一些代码段在并发或者多线程的情况下,始终只会被执行一次.比如一些init函数,多次调用可能导致各种奇怪问题. 给个例子: #include <iostream> #include <thread> #include <mutex> std::once_flag flag1; void simple_do_once() { std::call_once(flag1, [](){ std::cout <&…
出现情景 如果一个控制器(ViewController)被导航控制器管理,并且该控制器的第一个子控件是UIScrollView,系统默认会调节UIScrollView的contentInset UIEdgeInsetsMake(64, 0, 0, 0) // 有导航栏 UIEdgeInsetsMake(20, 0, 0, 0) // 没有导航栏 如果上述情况中的导航控制器又被UITabBarController管理,那么 UIEdgeInsetsMake(64, 0, 49, 0) // 导航控…
背景: 公司的一套系统,由前端.界面.服务层.大数据开发平架等多层组成,每一层被划分为多个模块,每个模块会依赖若干组建.由于公司的这套系统是部署在内网环境中的,现在需要拿出去给客户演示,用一个笔记本装这么多个模块有点不现实.因此,我们提出通过缓存前端请求的方式,屏蔽对后端的依赖,通过录制对系统的操作缓存后端请求,达到仿真的效果. 解决思路: 利用Nginx的缓存功能,将所有请求都缓存到本地.演示时,只需启动Nginx,通过访问本地nginx即可重复操作已录制的动作. worker_process…
mysql 中常用的删除的方法基本上有下面三种方式: 1.delete 一般用于删除少量表中的数据 优化建议,一定要加上where 条件,并且where条件的列上 一定要有主键或者索引.否则会出现全表扫描的情况 2.drop 直接将表删除,包括表的数据和表的定义. 这种操作,MySQL 会加上一个全局锁,删除期间会阻塞操作,所以对大表来说这样操作一定会对生产造成很大的影响 优化建议,大表不要使用drop  table 这种方式,可以考虑 truncate  table的方式 3.truncate…
当把mysql容器销毁,在新建一个容器,进行之前的数据恢复. 因为之前建立了数据卷,那么现在就可以利用这个数据卷进行数据恢复. 使用docker volume create volume_name命令新建一个数据卷 docker volume ls查看数据卷列表 注意:使用数据卷进行挂载的时候,数据卷必须是一个空的目录,也就是说不能有任何数据. docker inspect volume_name查看数据的相关信息,例如挂载位置 在恢复数据之前需要把刚刚建立的数据卷里面关联的内容删除掉,然后把之…
前面有多篇文章介绍过MySQL InnoDB的相关知识,今天我们要更深入一些,看看它们的内部原理和机制是如何实现的. 一.内存管理 我们知道,MySQl是一个存储系统,数据最后都写在磁盘上.我们以前也提到过,磁盘的速度特别是大容量的磁盘受磁头臂的影响,速度相对内存慢很多.所以Innodb实现了自己的缓存机制. 首先我们先看下Innodb对内存是如何使用和划分的,然后我们再看看它是如何保存热数据的. 1.主要模块和组成 (1) Buffer Pool 预分配的内存池 (2) Page Buffer…
参考:http://addls.com/mysql-innodb-%E4%B9%8B-ibdata1-%E7%98%A6%E8%BA%AB%E5%A4%A7%E6%B3%95.html # 备份数据库: /usr/local/mysql/bin/mysqldump -uDBuser -pPassword –quick –force –routines –add-drop-database –all-databases –add-drop-table > /data/bkup/mysqldump.…