RDB&AOF
2 RDB持久化2.1 是什么?在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里(内存的东西不保存关机就没了,为什么redis开机还有数据?因为内存中的数据集快照被写进了磁盘,开机从磁盘加载回内存。) 2.2 相关配置12345678redis.conf的SNAPSHOTTINGafter 900 seconds if at l
2 RDB持久化2.1 是什么?在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里(内存的东西不保存关机就没了,为什么redis开机还有数据?因为内存中的数据集快照被写进了磁盘,开机从磁盘加载回内存。) 2.2 相关配置12345678redis.conf的SNAPSHOTTINGafter 900 seconds if at l
string一个key对应一个value(和Memcached一样),字符串是一种最基本的Redis值类型。Redis字符串是二进制安全的,这意味着一个Redis字符串能包含任意类型的数据,例如: 一张JPEG格式的图片或者一个序列化的Ruby对象,一个字符串类型的值最多能存储512M字节的内容。 基础命令1234567891011121314151617181920212223242526272
1.1 Nosql概念nosql means not only sql 1.2 为什么Nosql?web架构历史了解一下orz 1.2.1 单机mysql的美好年代90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付,在那个时候,更多的网页都是静态的,动态交互类型的网站不多。APP(应用层)-> DAL() -> MysqlINSTANCE 架构缺陷 1.数据量的总大小
3.1 是什么Remote Dictionary Server(远程字典服务器)是完全开源的用C语言编写的,遵守BSD协议,是一个高性能、单线程的KEY/value分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,也被人们称为数据结构服务器 3.1.1 为什么redis取代memcache? 1.支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 2.不
2.1 RDBMS ACID 1.A atomicity 原子性事务的成功条件是所有操作完成,事务失败整体回滚 2.C consistency 一致性数据库要一直处于一个一致的状态,事务让数据库从一个一致的状态,到另一个一致的状态 3.I isolation 隔离性事务之间互不影响(要看事务的隔离级别) 4.D duriability 持久性一旦
连接层 connection poolC/S程序都需要的:连接处理,身份验证,安全性 服务层(业务逻辑处理层)sql layer权限判断,sql解析,行计划优化, query cache 的处理以及所有内置的函数(如日期,时间,数学运算,加密)等等。各个存储引擎提供的功能都集中在这一层,如存储过程,触发器,视图等 架构 connectors不同语言中与sql的交互 Management Se
口诀orz 1.全值匹配我最爱 2.最佳左前缀法则 3.带头大哥不能死 4.中间兄弟不能断 5.索引列上不计算 6.范围之后全失效 7.百分like加右边 8.字符串里有引号 索引失效的情况 1.不在索引列上做任何操作(计算,函数,(自动or手动)类型转换),会导致索引失效而转向全表扫描 12explain select * from staffs where name=’july’;
单表 1.创建表 123456789create tables if not exists article( id int unsigned primary key not null auto_increment, author_id int unsigned not null, category_id int unsigned not null, comments int unsigned no
索引是什么?是帮助mysql高效获取数据的数据结构,可以得到索引的本质:索引是数据结构。(btree) 1.排好序的快速查找数据结构 2.在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。 3.当你删除数据后,某些索引指向就会失效。这个时候需要锁表重构索引。 4.为什么update、insert慢,因为数
索引优化分析性能下降sql慢:(执行时间长,等待时间长) 1.select语句写的烂,各种连接加子查询 2.索引失效,建的索引没用,创建单索引和复合索引 1create index idx_user_name (idx_tablename_indexname) on user(name) 查询用的多的字段建立联合建立复合索引 1create index idx_user_nameEmail o