数据库
trytrylmt
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis复制与分片
一、复制通过使用 slaveof host port 命令来让一个服务器成为另一个服务器的从服务器。一个从服务器只能有一个主服务器,并且不支持主主复制。1)链接过程主服务器创建快照文件,发送给从服务器,并在发送期间使用缓冲区记录执行的写命令。快照文件发送完毕之后,开始向从服务器发送存储在缓冲区中的写命令; 从服务器丢弃所有旧数据,载入主服务器发来的快照文件,之后从服务器开始接受主...原创 2020-02-08 11:03:26 · 249 阅读 · 0 评论 -
Redis的持久化、事务、事件
一、持久化Redis 是内存型数据库,为了保证数据在断电后不会丢失,需要将内存中的数据持久化到硬盘上。RDB持久化将某个时间点的所有数据都存放到硬盘上。可以将快照复制到其它服务器从而创建具有相同数据的服务器副本。如果系统发生故障,将会丢失最后一次创建快照之后的数据。如果数据量很大,保存快照的时间会很长。AOF持久化将写命令添加到 AOF 文件(Append Only...原创 2020-02-08 10:57:53 · 176 阅读 · 0 评论 -
Redis与Memcached的区别、Redis键的过期时间、数据淘汰策略
一、Redis与Memcached的区别两者都是非关系型内存键值数据库,主要有以下不同:1)数据类型Memcached 仅支持字符串类型,而 Redis 支持五种不同的数据类型,可以更灵活地解决问题。2)数据持久化Redis 支持两种持久化策略:RDB 快照和 AOF 日志,而 Memcached 不支持持久化3)分布式Memcached 不支持分布式,只能通过在客户端...原创 2020-02-08 10:41:30 · 263 阅读 · 0 评论 -
Redis的概述、数据类型、数据结构、使用场景
一、概述Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能。二、数据类型数据类型 可以存储的值 操作 STRING 字符串...原创 2020-02-08 10:29:03 · 162 阅读 · 0 评论 -
MySQL的切分、复制
一、切分1、水平切分水平切分又称为 Sharding,它是将同一个表中的记录拆分到多个结构相同的表中。当一个表的数据不断增多时,Sharding 是必然的选择,它可以将数据分布到集群的不同节点上,从而缓存单个数据库的压力。2、垂直切分垂直切分是将一张表按列切分成多个表,通常是按照列的关系密集程度进行切分,也可以利用垂直切分将经常被使用的列和不经常被使用的列切分到不同的表中。...原创 2020-02-07 20:00:20 · 238 阅读 · 0 评论 -
MySQL的数据类型
1、整型TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT 分别使用 8, 16, 24, 32, 64 位存储空间,一般情况下越小的列越好。INT(11) 中的数字只是规定了交互工具显示字符的个数,对于存储和计算来说是没有意义的。2、浮点数FLOAT 和 DOUBLE 为浮点类型,DECIMAL 为高精度小数类型。CPU 原生支持浮点运算,但是不支...原创 2020-02-07 19:51:36 · 261 阅读 · 0 评论 -
存储引擎
1、InnoDB是 MySQL 默认的事务型存储引擎,只有在需要它不支持的特性时,才考虑使用其它存储引擎。实现了四个标准的隔离级别,默认级别是可重复读(REPEATABLE READ)。在可重复读隔离级别下,通过多版本并发控制(MVCC)+ Next-Key Locking 防止幻影读。主索引是聚簇索引,在索引中保存了数据,从而避免直接读取磁盘,因此对查询性能有很大的提升。内部做了...原创 2020-02-07 19:47:34 · 109 阅读 · 0 评论 -
查询性能优化
1、使用Explain进行分析Explain 用来分析 SELECT 查询语句,开发人员可以通过分析 Explain 结果来优化查询语句。比较重要的字段有:select_type : 查询类型,有简单查询、联合查询、子查询等 key : 使用的索引 rows : 扫描的行数2、优化数据访问1)减少请求的数据量只返回必要的列:最好不要使用 SELECT * 语句。 只返回...原创 2020-02-07 11:42:09 · 142 阅读 · 0 评论 -
索引优化、索引的优点、使用条件
1、独立的列在进行查询时,索引列不能是表达式的一部分,也不能是函数的参数,否则无法使用索引。例如下面的查询不能使用 actor_id 列的索引:SELECT actor_id FROM sakila.actor WHERE actor_id + 1 = 5;2、多列索引在需要使用多个列作为条件进行查询时,使用多列索引比使用多个单列索引性能更好。例如下面的语句中,最好把 act...原创 2020-02-07 11:36:22 · 287 阅读 · 0 评论 -
MySQL索引
索引是在存储引擎层实现的,而不是在服务器层实现的,所以不同存储引擎具有不同的索引类型和实现。1.B+Tree索引是大多数 MySQL 存储引擎的默认索引类型。因为不再需要进行全表扫描,只需要对树进行搜索即可,所以查找速度快很多。因为 B+ Tree 的有序性,所以除了用于查找,还可以用于排序和分组。可以指定多个列作为索引列,多个索引列共同组成键。适用于全键值、键值范围和键前...原创 2020-02-07 11:28:06 · 121 阅读 · 0 评论 -
SQL事务管理、字符集、权限管理
一、事务管理基本术语:事务(transaction)指一组 SQL 语句; 回退(rollback)指撤销指定 SQL 语句的过程; 提交(commit)指将未存储的 SQL 语句结果写入数据库表; 保留点(savepoint)指事务处理中设置的临时占位符(placeholder),你可以对它发布回退(与回退整个事务处理不同)。MySQL 的事务提交默认是隐式提交,每执行一条语句就...原创 2020-02-05 11:03:41 · 162 阅读 · 0 评论 -
SQL存储过程
一、存储过程存储过程可以看成是对一系列 SQL 操作的批处理。使用存储过程的好处:代码封装,保证了一定的安全性; 代码复用; 由于是预先编译,因此具有很高的性能。命令行中创建存储过程需要自定义分隔符,因为命令行是以 ; 为结束符,而存储过程中也包含了分号,因此会错误把这部分分号当成是结束符,造成语法错误。包含 in、out 和 inout 三种参数。给变量赋值都需要用 s...原创 2020-02-05 10:52:58 · 205 阅读 · 0 评论 -
SQL查询进阶
一、分组查询把具有相同的数据值的行放在同一组中。指定的分组字段除了能按该字段进行分组,也会自动按该字段进行排序。GROUP BY 自动按分组字段进行排序,ORDER BY 也可以按汇总字段来进行排序。SELECT col, COUNT(*) AS numFROM mytableGROUP BY colORDER BY num;WHERE 过滤行,HAVING 过滤分组...原创 2020-02-05 10:34:25 · 614 阅读 · 0 评论 -
SQL
一、基础模式定义了数据如何存储、存储什么样的数据以及数据如何分解等信息,数据库和表都有模式。主键的值不允许修改,也不允许复用(不能将已经删除的主键值赋给新数据行的主键)。SQL(Structured Query Language),标准 SQL 由 ANSI 标准委员会管理,从而称为 ANSI SQL。各个 DBMS 都有自己的实现,如 PL/SQL、Transact-SQL 等。...原创 2020-02-05 10:19:58 · 176 阅读 · 0 评论 -
数据库系统的关系数据库设计理论、ER图
目录一、关系数据库设计理论函数依赖异常范式 二、ER图实体的三种联系表示出现多次的关系联系的多向性表示子类一、关系数据库设计理论函数依赖记 A->B 表示 A 函数决定 B,也可以说 B 函数依赖于 A。如果 {A1,A2,... ,An} 是关系的一个或多个属性的集合,该集合函数决定了关系的其它所有属性并且是最小的,...翻译 2020-02-04 17:46:23 · 1462 阅读 · 0 评论 -
数据库隔离级别、多版本控制、Next-Key Locks
目录一、隔离级别未提交读(READ UNCOMMITTED)提交读(READ COMMITTED)可重复读(REPEATABLE READ)可串行化(SERIALIZABLE)二、多版本并发控制基本思想版本号Undo日志ReadView快照读与当前读三、Next-Key LocksRecord LocksGap LocksNext-Key...翻译 2020-02-04 17:22:38 · 471 阅读 · 0 评论 -
数据库系统原理
目录一、事务概念ACIDAUTOCOMMIT二、并发一致性问题丢失修改读脏数据不可重复读幻影读三、封锁封锁粒度封锁类型封锁协议1.三级封锁协议2.两段锁协议MySQL隐式与显式锁定一、事务概念事务指的是满足 ACID 特性的一组操作,可以通过 Commit 提交一个事务,也可以使用 Rollback 进行回滚。ACI...翻译 2020-02-04 12:10:13 · 173 阅读 · 0 评论
分享