![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据库
Mysql数据库
Lewis-Liu.
临渊羡鱼,不如退而结网
展开
-
sql语句练习题
创建表,(id, 标题title, 100字内, 公司f_id, 10以内数字, 类型f_type进口1, 出口2, 金额,2位小数, 时间) 并插入几条数据。 create table t_order(id int unsigned primary key auto_increment not null, title varchar(100) default '', f_id tinyint unsigned, f_type enum("1", "2"), mo.原创 2020-08-31 15:27:05 · 803 阅读 · 0 评论 -
MySQL sql语句执行过程和顺序
MySQL 基本架构 连接器: 身份认证和权限相关(登录 MySQL 的时候)。 查询缓存: 执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用)。 分析器: 没有命中缓存的话,SQL 语句就会经过分析器,分析器说白了就是要先看你的 SQL 语句要干嘛,再检查你的 SQL 语句语法是否正确。 优化器: 按照 MySQL 认为最优的方案去执行。 执行器: 执行语句,然后从存储引擎返回数据。 sql语句编写顺序 <SELECT clause> [<FROM原创 2020-08-31 12:19:35 · 258 阅读 · 0 评论 -
Redis 的使用场景
1.取最新 N 个数据的操作 2.排行榜应用,取 TOP N 操作 3.需要精准设定过期时间的应用 4.计数器应用 5.uniq 操作,获取某段时间所有数据排重值 6.Pub/Sub 构建实时消息系统 7.构建队列系统 8.缓存原创 2020-08-20 01:17:14 · 114 阅读 · 0 评论 -
事务的特性
原子性: 事务中的所有操作是不可分割的, 要么全部执行, 要么全部不执行 一致性: 并行的事务的处理结果必须和事务串行时的顺序执行的结果一致 隔离性: 事务不会受到其他事务的干扰, 事务的中间结果必须对其他事务是透明的 持久性: 对于已提交的事务, 系统必须保证事务对数据库的操作是不会丢失的 ...原创 2020-08-19 09:15:03 · 86 阅读 · 0 评论 -
数据库三范式
第一范式 确保每一列的原子性,数据表中的每一列,必须是不可拆分的最小单元,不能够再拆分成其他列。 第二范式 满足第一范式后要求表中的所有列,都必需依赖于主键,而不能有任何一列与主键没有关系。 第三范式 满足第二范式后要求表中的所有列只能直接依赖于主键,而不能间接依赖。 ...原创 2020-08-19 09:12:14 · 78 阅读 · 0 评论 -
Mysql中MyISAM与InnoDB引擎的区别
1.myisam是默认引擎, innodb需要指定 2.innodb支持事务, 在事务中操作出错可以进行数据库回滚, myisam每次查询具有原子性但不支持事务 3.innodb支持外键, myisam不支持外键 4.MyISAM 在磁盘上存储成三个文件, InnoDB所有的表都保存在同一个数据文件中 5.myisam适合查询插入为主的应用, innodb适合频繁修改和安全性较高的应用 ...原创 2020-08-18 11:22:49 · 95 阅读 · 0 评论 -
乐观锁与悲观锁
悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。 传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁 总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据。 乐观锁一般会使用版本号机制或CAS算法实现。 版本号机制:一般是在数据表中加上一个数据版本号version字段,表示数据被修改原创 2020-08-09 17:10:25 · 784 阅读 · 0 评论 -
Mysql数据库优化
可以给查询频率高的字段,创建索引 分表分库 对sql查询语句进行优化,要尽量避免全表扫描 主从配置, 读写分离 使用缓存, 把经常访问不经常改变的数据放进缓存中,减少对数据库的访问原创 2020-08-08 19:05:17 · 111 阅读 · 0 评论 -
Mysql数据库常用sql语句
1.数据库 test 连接: mysql -uroot -p密码 退出: quit/exit/ctrl + D 查看-当前: select database(); 所有: show databases; 创建: create database test charset=utf8; 使用: use test; 删除: drop database test; 2.数据表 student 查看所有表: show tables; 查看表的结构: desc student; 创建表: create tab原创 2020-07-06 20:19:45 · 332 阅读 · 1 评论