技术博客

Mysql and Redis

2020-12-29  本文已影响0人  Lovealfy

基础部分

外键: 外键用来关联两个表
索引: 索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录 ,索引可以大大提高mysql的检索速度 ,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。
拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。

简单的增删改查

create table `user`(`id` int(11) NOT NULL, `name` varchar(128) NOT NULL ,`age` int(11) NOT NULL,PRIMARY KEY(`id`))ENGINE=InnoDB DEFAULT CHARSET=utf8;

select * from user;
insert into user(name,age) values('aa','22');
update user set user.name =‘aa’;
delete from user where user.name='aa';

在sql结构化查询语句中,like语句有着至关重要的作用

A:% 包含零个或多个字符的任意字符串:

1、like'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。

2、like'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。

3、like'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet、Green、McBadden)

order by 也是经常使用语句一般和desc 、asc一起使用,前者是降序,后者是升序

group by 语句 经常和count、sum avg等函数一起使用

Mysql 连接的使用

内连接(inner join): 获取两个表中字段匹配关系的记录
左连接(left join) : 获取左表所有记录,即使右表没有对应匹配的记录
右连接(right join): 用于获取右表所有记录,即使左表没有对应匹配的记录

InnoDB存储引擎介绍

    支持事务,其设计目标主要面向在线事务处理的应用。其特点是行锁设计、支持外键,并支持类似于Oracle的非锁定读,InnoDB存储引擎是默认的存储引擎。
     数据放在一个逻辑的表空间中,InnoDB使用多版本并发控制来获得高并发性,使用一种被称为next-key locking的策略来避免幻读现象的产生,插入缓冲、二次写、自适应哈希索引、预读等高性能和高可用的功能。

redis数据结构:string、hash、list、set(无序、不重复)、zset(有序、不重复)

1、String字符串类型

redis最基本的数据类型  key---value  二进制安全,string可以包含任何数据,如数字、字符串、图片或者序列化的对象

使用  :get 、set、del、incr、decr

实战场景: 缓存 ,把常用信息(token、手机验证码)、图片或者视频等信息放到redis,redis作为缓存层,mysql做持久层,降低mysql的读写压力

session  spring session +redis 实现session共享

2、Hash(哈希)

其值本身又是一种键值对结构 value={{field1,value1},....}

使用:hset、 hget、 hdel

实战场景:缓存,比string更节省空间,用户信息、视频信息

3、List(链表)

redis 使用双端链表实现的List,有序,value可重复,可以通过下标去除对应的value值,左右两边都能进行插入和删除数据

实战场景:微博的时间轴 有人发布微博,用lpush加入时间轴,展示新的列表信息。

4、Set集合

用来保存多个字符串的元素,不允许重复的元素,集合中元素是无序的,不能通过索引下标来获取数据元素

实战场景:用户标签、点赞、收藏

5、zset集合

集合不能有重复,可排序,给每个元素设置一个分数。作为排序的依据

排行榜,榜单可以按照用户关注数、更新时间等打分,做排行

上一篇下一篇

猜你喜欢

热点阅读