随笔分类 -  MySQL

1
摘要:一、常用函数 1.1 ascii(str) 返回值为字符串str的最左字符的数值,即取得最左字符的ascii码。假如str为空字符串,则返回值为0。假如str为null,则返回值为null。 mysql> select ascii('a'); + + | ascii('a') | + + | 97 阅读全文
posted @ 2023-07-05 14:33 夏尔_717 阅读(248) 评论(0) 推荐(0) 编辑
摘要:生成列(generated column)的值是根据列定义中包含的表达式计算得出的。 生成列包含下面两种类型: virtual(虚拟):当从表中读取记录时,将动态计算该列。 stored(存储):当向表中写入新记录时,将计算该列并将其存储为常规列。 virtual生成列比stored生成列更有用,因 阅读全文
posted @ 2022-11-27 13:09 夏尔_717 阅读(362) 评论(0) 推荐(0) 编辑
摘要:MySQL 8支持公用表表达式,包括非递归和递归两种。 公用表表达式允许使用命名的临时结果集,这是通过允许在SELECT语句和某些其他语句前面使用WITH子句来实现的。 不能在同一查询中两次引用派生表(子查询),因为那样的话,查询会根据派生表的引用次数计算两次或多次,这会引发严重的性能问题。使用CT 阅读全文
posted @ 2022-11-24 14:02 夏尔_717 阅读(198) 评论(0) 推荐(0) 编辑
摘要:1. 自增变量持久化 在MySQL8.0之前的版本中,自增列计数器置于内存中,并不会持久化到磁盘,当数据库重启后,会根据select max(id)+1 from xxx重新计算当前自增列值,这种现象在某些情况下会导致业务主键冲突或者其他难以发现的问题。自增主键重启重置的问题很早就被发现Innodb 阅读全文
posted @ 2022-11-18 15:49 夏尔_717 阅读(327) 评论(0) 推荐(0) 编辑
摘要:要在MySQL中存储数据,就必须定义数据库和表结构(schema),这是一个主要的限制。为了应对这一点,MySQL 5.7开始支持了JavaScript对象表示(JavaScript Object Notation,JSON)数据类型。之前,这类数据不是单独的数据类型,会被存储为字符串。新的json 阅读全文
posted @ 2022-11-05 18:25 夏尔_717 阅读(849) 评论(0) 推荐(2) 编辑
摘要:# 一、概述 窗口函数(`window functions`)是一种对结果集进行计算,并将计算结果合并到结果集上返回多行的一类函数。`MySQL8`开始支持窗口函数,包括`rank()`、`lag()`和`ntile()`等非聚合窗口函数。以及部分聚合函数现在可以用作窗口函数,例如:`sum()`和 阅读全文
posted @ 2022-11-01 18:07 夏尔_717 阅读(525) 评论(0) 推荐(1) 编辑
摘要:一、索引简介 索引是一种用于快速查询和检索数据的数据结构。常见的索引结构有:B树,B+树和Hash。 索引的作用就相当于目录的作用。打个比方:我们在查字典的时候,如果没有目录,那我们就只能一页一页的去找我们需要查的那个字,速度很慢。如果有目录了,我们只需要先去目录里查找字的位置,然后直接翻到那一页就 阅读全文
posted @ 2022-10-31 16:36 夏尔_717 阅读(1332) 评论(0) 推荐(0) 编辑
摘要:`MySQL`是当今最通用的数据库软件之一,也是大部分人接触最多,时间最长的数据库软件之一。深入了解`MySQL`的架构和设计对于`DBA`,研发和运维都非常重要,能够帮助我们在日常工作中更好地理解和运用`MySQL`。 * `SQL`语句在数据库底层的执行过程? * `MySQL`底层数据存储结构 阅读全文
posted @ 2022-07-29 18:59 夏尔_717 阅读(216) 评论(0) 推荐(0) 编辑
摘要:用数据库的时候,偶尔会出现死锁,针对我们的业务系统,出现死锁的直接结果就是系统卡顿,所以我们也在想尽全力的消除掉数据库的死锁。 出现死锁的时候,如果只是想解锁,用show full processlist看下kill掉就好了,如果想查找到详细的问题,一个办法是用show engine innodb 阅读全文
posted @ 2022-04-26 09:43 夏尔_717 阅读(502) 评论(0) 推荐(0) 编辑
摘要:一、锁分类 MySQL的锁主要分为3大类: 表级锁:存储引擎为Myisam。锁住整个表,特点是开销小,加锁快,锁定力度大,发生锁冲突的概率最高,并发度最低。 页级锁:存储引擎为BDB。锁住某一页的数据(16kb左右),特点:开销和枷锁时间介于表级和行级之间;会出现死锁,锁定力度介于表锁和行锁之间,并 阅读全文
posted @ 2022-04-25 18:47 夏尔_717 阅读(643) 评论(0) 推荐(0) 编辑
摘要:一、自定义函数 自定义函数(user-defined function简称UDF)是一种对MySQL扩展的途径,其用法和内置函数相同。 自定义函数的两个必要条件: 参数 返回值(必须有)。函数可以返回任意类型的值。 1.1 创建 DELIMITER ; 阅读全文
posted @ 2022-04-25 18:37 夏尔_717 阅读(533) 评论(0) 推荐(0) 编辑
摘要:一、概述 MySQL日志主要包括错误日志、查询日志、慢查询日志、重做日志、归档日志几大类。其中比较重要的归档日志(binlog)和重做日志(redo log)和回滚日志(undo log)。 二、undo log日志 2.1 概念 顾名思义,回滚日志(undo log)的字面意思就是撤销操作的日志, 阅读全文
posted @ 2022-04-25 16:55 夏尔_717 阅读(239) 评论(0) 推荐(0) 编辑
摘要:锁是计算机协调多个进程或线程并发访问某一资源的机制。锁保证数据并发访问的一致性、有效性;锁冲突也是影响数据库并发访问性能的一个重要因素。锁是MySQL在服务器层和存储引擎层的的并发控制。 加锁是消耗资源的,锁的各种操作,包括获得锁、检测锁是否是否已解除、释放锁等。 锁机制 共享锁与排他锁 共享锁(读 阅读全文
posted @ 2022-04-25 16:45 夏尔_717 阅读(126) 评论(0) 推荐(0) 编辑
摘要:一、概述 一般情况下,出现慢SQL问题,往往会定位到某些具体的SQL语句上,然后通过所谓的“优化三板斧”,如下: | 板斧一 | 板斧二 | 板斧三 | | | | | | 查询执行计划 | 建立合适的索引 | 使用合适的连接关系和过滤条件来实现SQL语句的优化 | 但是,如果执行计划是正确的,SQ 阅读全文
posted @ 2022-04-25 09:57 夏尔_717 阅读(1123) 评论(0) 推荐(0) 编辑
摘要:SELECT ... INTO 语句 SELECT...INTO使查询结果可以存储在变量中或写入文件: SELECT ... INTO var_list选择列值并将其存储到变量中。 SELECT ... INTO OUTFILE将选定的行写入文件。可以指定列和行终止符以产生特定的输出格式。 SELE 阅读全文
posted @ 2022-04-24 10:15 夏尔_717 阅读(807) 评论(0) 推荐(0) 编辑
摘要:导入到数据库 use database source dbname.sql 导出数据 1.导出一个数据库的结构 mysqldump -d dbname -uroot -p > dbname.sql 2.导出多个数据库的结构 mysqldump -d -B dbname1 dbname2 -uroot 阅读全文
posted @ 2022-04-22 18:31 夏尔_717 阅读(279) 评论(0) 推荐(0) 编辑
摘要:通常查询慢SQL语句时会使用EXPLAIN命令来查看SQL语句的执行计划,通过返回的信息,可以了解到Mysql优化器是如何执行SQL语句,通过分析可以帮助我们提供优化的思路。 explain extended select * from t_test; 通过以上sql查询,展示以下表格(以下表格数据 阅读全文
posted @ 2022-04-22 18:29 夏尔_717 阅读(414) 评论(0) 推荐(0) 编辑
摘要:一、概述 事务(Transaction)是操作数据库中某个数据项的一个程序执行单元(unit)。 事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 二、事务特性(ACID) 1、原子性(Atomicity) 事务中所有操作是不可再分割的原子单位。事务中所有操作要 阅读全文
posted @ 2022-04-22 18:04 夏尔_717 阅读(151) 评论(0) 推荐(0) 编辑
摘要:一、获取当前日期时间函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); + + | now() | + + | 2008-08-08 22:20:46 | + + 除了now()函数能获得当前的日期时间外,MySQL中还有下面的函数: 阅读全文
posted @ 2022-04-22 18:01 夏尔_717 阅读(1818) 评论(0) 推荐(0) 编辑
摘要:一、MySQL基础 SQL的分类: DDL—数据定义语言(Data Define Language):create(创建),alter(修改),drop(删除),truncate(截断),rename(重命名); DML—数据操纵语言(Data Manipulation Language):sele 阅读全文
posted @ 2022-04-22 17:54 夏尔_717 阅读(74) 评论(0) 推荐(0) 编辑

1
点击右上角即可分享
微信分享提示