5.数据库
大苏打撒
多学就会融会贯通
这个作者很懒,什么都没留下…
展开
-
mybatis-plus学习
官网IService基本封装了baseMapper(Dao)对于数据库的操作所以 业务service实现Iservice就可以调用service 也可以调用 this.basemapper 的函数来进行数据库的操作还可以用wrapper 条件构造器 做为参数 wrapper如同最简便的sql语句上图中 如果想要查找符合条件的数据库记录 就可以在业务service(业务Service一定实现ISERVICE) 中直接调用this.save(new QueryWrapper<Enti原创 2021-03-21 21:40:10 · 171 阅读 · 0 评论 -
索引的优点
索引是存储引擎层面的帮助服务器快速定位表的指定位置索引中存储数据,帮助服务器避免扫表,减少查找数据量避免排序和临时表的创建将随机I/O变成顺序I/O口诀快速查找 减少查表简单查找 我已存好共赢查找 不用排序层面从索引自身的结构 那就是排序 和 存值—>临时表 和 排序 的问题解决为服务器带来的影响 快查 少查为操作系统带来影响 进行磁盘I/O是顺序的...原创 2021-01-15 14:09:55 · 213 阅读 · 0 评论 -
mysql索引的排列顺序
索引的排序是按照定义索引的顺序来的索引的顺序要遵循三个规则要遵循最左前缀 无论是多个还是一个列的索引 都不应该跳过最左列 如果在查询语句当中 没有使用最左前缀的字段 就不会使用索引index_key1_key2_key3 是我们的索引即使使用select key_2 ,key_3 from table where 。。。越过了最左前缀 是不会使用到索引index_key1_key2_key3的不能跨越索引列index_key1_key2_key3 不能使用key1 key3字原创 2021-01-15 13:45:50 · 2466 阅读 · 0 评论 -
事务的隔离级别
自己理解的事物ACID原子性一致性隔离性持久性隔离级别读未提交 READ UNCOMMITTED导致脏读读已提交 READ COMMITTED解决脏读 无法解决两次读数值不一致 不可重复读可重复读 REPEATABLE READ保证在一个事物里多次的读取 读是数值一致的 无法解决当前读的事无下又被修改了导致幻读串行化 SERIALIZABLE行锁SET SESSION/层面 TRANSACTION ISOLATION LEVEL READ COMMIT原创 2021-01-13 16:36:04 · 66 阅读 · 0 评论 -
索引底层数据结构:B树.B+树.哈希
Mysql数据库的数据结构二叉查找树每个存储快存储的是本身关键字和指向孩子的指针对于树来说存储快就是结点每个存储快能存储的关键字越多 频繁出入存储快的IO次数越少如果能指向的孩子越多 树的奥都就越小二叉查找树 左右子树差要小于1 时间复杂度O(logn)二叉树结点只能指向2个孩子 每个节点是一个存储快 每个存储快只可以存储两个节点可是我们需要做到:降低时间复杂度(高度)降低IO次数(存储块少)除此之外二叉查找树还要为了左右相差1 不断的调整平衡B树每个节点有多个孩子(降低高度原创 2020-07-31 21:02:21 · 471 阅读 · 0 评论 -
如何设计一个关系型数据库?
数据库的模块=程序+存储文件系统存储模块(DBMS)将数据库的内容通过存储模块持久化到磁盘中程序(逻辑管理)1.存储管理程序实例映射物理地址2. 缓存尽可能减少IO 不直接去磁盘不要一行一行优化存储项目:程序空间所在内存3.SQL解析4.日志管理5.权限划分总结:设计数据库和设计程序一样都需要具体的程序和存储空间再设计数据库的程序的时候需要考虑存储的管理读数据的问题 缓存快速读数据的问题 索引并发读数据的问题 锁如何读的问题 SQL解析查看BUG 日志问题原创 2020-07-31 19:57:33 · 259 阅读 · 0 评论 -
sql过慢为什么?如何优化
1.查询语句写的不行2.服务器调优 还有 各种参数不行 比如缓冲 线程数3.索引失效(建立了索引确没用上)4.关联太多join太多优化方法1:原创 2020-06-26 21:53:19 · 167 阅读 · 0 评论 -
《高性能Mysql》索引章节读书笔记
索引定义:索引是 排好序的快速查找的数据结构 简单来说索引会影响order by 和 where 后面目的是提高查找效率 (排序+查找)底层是B树 一文件的形式存储再磁盘上索引的优势1.提高查找效率2.降低数据库IO成本3.索引排序降低数据的排序成本4.降低CPU的消耗索引劣势1.索引占磁盘空间2.增大查询效率但是降低更新表的速率 因为增删改不仅是再操作字段还要操作相应的索引列相当于把三楼的书换成武侠小说 同时也要把图书馆目录改了索引的分类:单值索引:一个索引只包含单个列唯原创 2020-06-26 15:35:04 · 203 阅读 · 0 评论 -
7种join
首先你要知道 sql语句被/MySQL是如何解析的先解析都有那些表再解析表与表之间的关联是什么最后是从表中查询什么其中join:左连接 left join on右连接 right join on内链接 inner join on除去交集的左表 left join on where 右表 is null除去交集的右表 左表为空选择交集 就是出去做哦表左右全集重复的只留一份 unoion 左连接的结果 和...原创 2020-06-26 15:34:42 · 980 阅读 · 0 评论 -
数据库基本sql
删除列alter table 表名 drop column 列名3:当创建好数据表时添加外键约束:alter table 子表 add foreign key(子表已存属性) references 父表(父表属性);alter table 子表的数据表名 add foreign key(子表的外键名称) references 父表的数据表名称(父表的主键名称);...原创 2020-06-10 12:58:08 · 106 阅读 · 0 评论 -
sql优化:explain关键字
基础的mysql显示所有数据库:show database;使用数据库:use databaseName;显示数据库下的所有表:show tables;使用选定的表:use tableName;查看当前表所属的数据库select database();创建表create table Name( 字段 数据类型() primary key );查看表的设计 desc tableName; ...原创 2020-06-22 19:03:25 · 862 阅读 · 0 评论