mysql
文章平均质量分 83
qq_21154829
这个作者很懒,什么都没留下…
展开
-
行转列与列转行
行转列的需求如下,可以发现,行转列时其实是先group by,然后将每个组中的行转为列,使用case-when + 聚合函数,每个由行转为列的列,都要使用case-when或when-case语句。case-when是怎么作用的呢?组中的每行都经过case-when,如果组中有N行,那通过case-when就产生N个值,再使用聚合函数,变为一个单一值,即新列的值。行转列例如:把图1转换成图2结果展示图1图2CREATE TABLE TEST_TB_GRADE (ID int(10) NO原创 2022-01-07 16:42:02 · 175 阅读 · 0 评论 -
mysql外键
外键外键:foreign key,外面的键(键不在自己表中),如果一张表中有一个字段(非主键)指向另外一张表中的主键,那么该字段称之为外键.增加外键1.外键可以在创建表的时候或者创建表之后增加(但是要考虑数据的问题) 一张表可以有多个外键2.创建表的时候增加外键:在所有的表字段之后,使用foreign key(外键字段)references 外部表(主键字段)外键要求字段本身必须是一个索引(普通索引),如果字段本身没有索引,外键会先创建一个索引,然后才会创建外键本身在新增表之后增加外键:修改原创 2022-01-05 11:16:02 · 475 阅读 · 0 评论 -
SQL执行顺序
一、sql执行顺序fromonjoinwheregroup by(开始使用select中的别名,后面的语句中都可以使用)avg,sum…havingselectdistinctorder bylimit从这个顺序中我们不难发现,所有的 查询语句都是从from开始执行的,在执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这个虚拟表将作为下一个执行步骤的输入。第一步:首先对from子句中的前两个表执行一个笛卡尔乘积,此时生成虚拟表 vt1(选择相对小的表做基础表)。第二步:接下来原创 2022-01-05 11:00:14 · 114 阅读 · 0 评论 -
mysql优化explain详解
EXPLAIN简述:explain为mysql提供语句的执行计划信息。可以应用在select、delete、insert、update和place语句上。explain的执行计划,只是作为语句执行过程的一个参考,实际执行的过程不一定和计划完全一致,但是执行计划中透露出的讯息却可以帮助选择更好的索引和写出更优化的查询语句。EXPLAIN输出项(来源于mysql5.7文档)备注:当使用FORMAT=JSON, 返回的数据为json结构时,JSON Name为null的不显示。Column JSON N原创 2021-12-26 23:12:55 · 1131 阅读 · 0 评论 -
redis与mysql的数据一致性
如何保证缓存和数据库一致性,这其实是一个老生常谈的话题了。但很少人能真正把这个问题讲明白,例如:到底是更新缓存还是删缓存?到底选择先更新数据库,再删除缓存,还是先删除缓存,再更新数据库?为什么要引在这里插入代码片入消息队列保证一致性?延迟双删到底什么?会有什么问题?到底要不要用?…下面我们就来把这些问题「彻底」讲清楚。内容稍微有点长,但干货很多,希望你可以耐心读完。引入缓存提高性能我们从最简单的场景开始讲起。如果你的业务处于起步阶段,流量非常小,那无论是读请求还是写请求,直接操作数据库即可原创 2021-12-12 20:09:32 · 191 阅读 · 0 评论 -
mysql问题合集
mysql 常见面试题附录:https://mp.weixin.qq.com/s/pC0_Y7M7BkoUmlRwneZZdA一、为什么用自增列作为主键1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引。如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引。如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWI原创 2021-12-12 10:45:14 · 124 阅读 · 0 评论 -
一,mysql索引的概述
索引使用数据结构为数据建立了目录,可以根据索引快速的定位到数据在硬盘上存放的位置索引存放的位置:c:/programdata/mysqlInnoDB存储的表,将索引和数据存放在同一个文件内 。.idbMyISAM存储的表,将索引和数据存分开两个文件存储。索引:.MYI *.MYD索引的分类:主键索引:主键自带索引效果,通过主键来查询表内的数据是非常好的普通索引:为普通列创建索引格式:create index 索引名称 on 表名(列名)例:create index idx_name on e原创 2021-12-03 19:49:08 · 1252 阅读 · 0 评论