2019年7月31日

多线程基础

摘要: 多线程基础 串行:一个线程顺序执行所有事务 并行:n个线程分别执行n个线程 并发:1个线程一个时间片段内交错执行所有事务 竞态:计算结果的正确性依赖相对时间顺序或线程的交错;多线程在没有采取任何措施(即当前线程执行时另一个线程进来读取)的情况下并发地更新,读取同一个共享变量(不包含局部变量),而产生 阅读全文

posted @ 2019-07-31 22:18 hangzhi 阅读(259) 评论(0) 推荐(0) 编辑

内存屏障

摘要: 锁的使用场景 check-then-act:一个线程基于读取共享变量后的结果,决定下一个操作 read-modify-write:一个线程基于读取共享变量读取后的结果,更新该数据 多个线程更新多个共享变量:如这多个共享变量是有关联关系的,那么使用锁保证这些共享变量的更新操作是原子性的 内存屏障 内存 阅读全文

posted @ 2019-07-31 22:17 hangzhi 阅读(1014) 评论(0) 推荐(0) 编辑

2019年6月28日

查询成本

摘要: 查询语句执行之前都需要计算一下执行成本,并选择成本较低的执行方案。 执行的成本来自两方面: server:连接管理,查询缓存,语法解析,查询优化 存储引擎:数据存取 本质由I/O成本(存储引擎将数据和索引存储到磁盘,查询时再加载到内存后做操作)和CPU组成(读取并对记录做相应的排序匹配等操作的损耗) 阅读全文

posted @ 2019-06-28 08:36 hangzhi 阅读(299) 评论(0) 推荐(0) 编辑

多表连接的原理

摘要: 连接就是把各个表中的记录都拿出来然后依次匹配加入到结果集中。连接查询中表A与表B连接查询,表A的每条记录和表B的每条记录相互匹配的组成结果集被称为笛卡尔积。 连接查询过程 确定第一个表为驱动表,查询出驱动表中所有符合条件的结果集A 根据上一步查询出的结果集A,循环查询第二个表(被驱动表)与结果集A匹 阅读全文

posted @ 2019-06-28 08:35 hangzhi 阅读(1314) 评论(0) 推荐(0) 编辑

单表访问方法

摘要: Mysql执行查询语句的方式称为访问方法或访问类型,有两种大方向全表查询或索引查询,细分可分为const,ref 索引查询 先从B+树查找到对应的非叶子节点,根据得到的非叶子节点查询到主键值回查聚簇索引得到聚簇索引树上的叶子节点信息,上面存储了目标记录所有信息;如果搜索条件为多个不同的索引列,会先分 阅读全文

posted @ 2019-06-28 08:34 hangzhi 阅读(200) 评论(0) 推荐(0) 编辑

MySQL的数据目录

摘要: 来源 MySQL的几个存储引擎如InnoDB和MyISAM都是将数据存储到磁盘上,而我们的操作系统是通过文件系统来管理磁盘的,所以可以说这几个存储引擎都是将表存储在文件系统上的,而我们通过操作文件系统来读写数据。 定义 数据目录存储MySQL服务器在运行过程重产生的数据,且在服务器程序启动时会从这个 阅读全文

posted @ 2019-06-28 08:31 hangzhi 阅读(7457) 评论(0) 推荐(0) 编辑

Redis使用

摘要: 方案一:key-value形式存储,key为用户id,value为用户结构信息序列化后的字符串内容 方案二:hash存储,子key为用户id,value为用户结构信息,无需序列化 方案一在存取时需要序列化与反序列化;且key可不唯一,用户id存储可能重复;并发操作时需要将整个对象取回并对修改操作作并 阅读全文

posted @ 2019-06-28 08:28 hangzhi 阅读(400) 评论(0) 推荐(0) 编辑

Redis基本数据结构

摘要: String字符串 Redis的字符串是动态字符串可修改,结构类似于ArrayList预先分配内存,当字符串长度小于1M,扩容是加倍现有空间,大于1M,一次扩容1M,字符串长度最大512M 操作: (单个增加)set key value 或 (单个获取)get key value (批量增加)mse 阅读全文

posted @ 2019-06-28 08:27 hangzhi 阅读(124) 评论(0) 推荐(0) 编辑

2019年5月30日

Mysql基础

摘要: Mysql基础 启动服务 通过安装目录下的执行文件就可以启动MySQL服务,如 mysqld(代表MySQL服务程序) mysqld_safe(启动脚本,启动mysqld时还同时启动了另外一个监控进程,是守护进程,如果服务进程挂了,监控进程会帮助重启,可以用mysqladmin强制关闭) mysql 阅读全文

posted @ 2019-05-30 10:09 hangzhi 阅读(128) 评论(0) 推荐(0) 编辑

InnoDB记录存储结构

摘要: InnoDB是一个将数据存储到磁盘上的存储引擎。对于更新/写入的数据,先将数据从磁盘中加载到内存,更新后再将数据刷新到磁盘。 行格式 而磁盘与内存交互的数据,InnoDB采取将数据分为若干页,一页一般为16kb,以页为单位磁盘与内存之间交互传输。表中的数据一般是以记录为单位进行操作,页中最少存储两条 阅读全文

posted @ 2019-05-30 10:07 hangzhi 阅读(225) 评论(0) 推荐(0) 编辑

导航