随笔分类 - 数据库
数据库相关基础知识
摘要:在使用jsqlparse的时候出现了一个ClassNotFund的异常 经过查找代码发现是在mybatis-plus引入分页拦截器PaginationInnerInterceptor的时候,mybatis-plus整合了import net.sf.jsqlparser.statement.selec
阅读全文
摘要:官网地址:https://documentation.red-gate.com/fd/quickstart-how-flyway-works-184127223.html 为什么选择flyway 官网给的信息: They allow you to: Recreate a database from
阅读全文
摘要:1 范式的基本概念 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。没有冗余的数据库未必是最好的数据库, 有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。 函数依赖 比如描述一个学生的关系,
阅读全文
摘要:官网地址:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html https://dev.mysql.com/doc/refman/5.7/en/explain-extended.html ## EXPLAIN语句 EXPLAIN执行列
阅读全文
摘要:官网地址:https://dev.mysql.com/doc/refman/5.7/en/optimization.html ## 索引使用的原则 ### 列的离散度高的列建索引,离散度低的列尽量避免建索引 #### 列的离散度 - 列的离散度的计算公式 ``` select count(disti
阅读全文
摘要:官方地址:https://dev.mysql.com/doc/refman/8.0/en/index-condition-pushdown-optimization.html 官方文档一开头就写明:索引下推的作用是优化检索行。 那么索引下推是如何优化检索行的? 文档中给了解释: 没有ICP的情况下,
阅读全文
摘要:使用CET派生表的原因 在多个递归的子查询,可以优化使用 对mysql的派生表进行优化,减少递归重复语句 查找多个有规律的select的并集 CET的基础语法 语法结构 WITH RECURSIVE cte_name AS ( SELECT ... <-- specifies initial set
阅读全文
摘要:官网地址:https://dev.mysql.com/doc/refman/8.0/en/json-functions.html 创建对象 SELECT t.code,JSON_OBJECT(t.code,t.name,t.sub_code,t.sub_value) FROM cms_config
阅读全文
摘要:官方文档地址:https://dev.mysql.com/doc/refman/8.0/en/descending-indexes.html https://dev.mysql.com/blog-archive/mysql-8-0-labs-descending-indexes-in-mysql/
阅读全文
摘要:为什么要使用窗口函数? 1.窗口函数的作用? 窗口函数对一组查询行执行类似聚合的操作 和聚合函数不同点在于,窗口函数会为每个查询行生成一个结果 1.使用聚合函数查询 mysql> SELECT SUM(profit) AS total_profit FROM sales; + + | total_p
阅读全文
摘要:ORA-02291: 违反完整约束条件 (*) - 未找到父项关键字 一般有三种情况: 1.在往A表插入时,外键关联的字段在B表中必须有数据,如果B表中没有数据则又这种情况; 2.产生了外键环,就是B表中被外键关联的字段又关联了C表中的字段,而C中相应字段却没有数据,则产生这种情况。 3.中的外键字
阅读全文
摘要:生成列是指值是通过表达式计算而来的列,参与表达式计算的列是已经表中已经定义的列 语法及规则 新建表时创建生成列 举个栗子: 想要获取两个列组合的数据 SELECT CONCAT(first_name,' ',last_name) AS full_name FROM t1; 但是如果full_name
阅读全文
摘要:官网地址: https://dev.mysql.com/doc/refman/5.7/en/slow-query-log.html https://dev.mysql.com/doc/refman/5.7/en/mysqldumpslow.html # 慢查询 查询任务涉及到:网络,CPU计算,生成
阅读全文
摘要:官网地址:https://dev.mysql.com/doc/refman/8.0/en/charset.html 字符集及排序规则 MYSQL存储字符提供了多种的字符设置和排序规则。 服务器默认的字符设置和排序规则为: utf8mb4 utf8mb4_0900_ai_ci 什么是字符集和排序? 字
阅读全文
摘要:参考图书:《高性能MYSQL》 # 1.数据库索引的特点 ## 1.1 索引的有效范围 因为索引一般使用BTree做数据存储结构,索引查询的有效范围为: 1.全值匹配; 2.匹配最左前缀; 3.匹配列前缀 4.匹配范围值; 5.精确匹配一列并范围匹配另外一列; 6.只访问索引的查询; ## 2.聚簇
阅读全文
摘要:## Mysql中常见的数据类型 **选择恰当的数据类型,对于MYSQL服务器的性能影响至关重要,在建表根据自己的业务逻辑选择恰当的数据类型和数据长度,也是我们MYSQL查询优化的一种重要方式;** **参考书籍:《高性能MYSQL》** 数据类型选择的 ### 1.数据类型选择遵守的原则 - 更小
阅读全文
摘要:# Mysql的事务 ## 1.基本概念 事务本质是一组SQL操作,事务中的语句要么全部执行成功,或者全部执行失败。 ## 2.如何保证一个事务:四个特性(ACID) ##### 原子性 (Automic) 表示事务是操作的最小单元。整个事务的操作,要么全部成功,要么全部失败。 ##### 一致性
阅读全文
摘要:数据库查询语言(Structured Query Language) 数据库查询语言: DDL(data definition language) -数据定义语言,建库建表 DML (data manipulate language ) -数据操作语言,增删改 DQL (data query lan
阅读全文
摘要:数据字典 数据字典可以通过INFORMATION_SCHEMA表和SHOW语句进行访问 数据字典和系统表的区别 数据字典包含执行SQL所需要的元数据 系统表包含时区和帮助信息等辅助数据 使用数据字典的好处 集中式数据字典模式的简单性,统一存储字典数据。 移除基于文件的元数据存储 在8.0之前的版本中
阅读全文