关系型数据库MySQL
目前所在公司mysql用的比较少,所以基本会是参考官方文档来做知识总结,以后如果有用到mysql的地方,也会总结一些实战的问题
墨笙弘一
这个作者很懒,什么都没留下…
展开
-
redission限流RedisException问题排查
异常信息:org.redisson.client.RedisException: ERR Error running script (call to f_5bec93211d737622365d15a9a4f2537fxxxea2): @user_script:1: user_script:1: RateLimiter is not initialized . channel: [id: 0xfd30xxa3, L:/10.42.4.60:47422 - R:xxx.xx.xx.xx/xxx.xx.xx.原创 2022-05-15 10:51:22 · 3279 阅读 · 0 评论 -
mysql select count(*) 优化
最近一直在做微服务的压测和改善,从代码层面,逻辑层面,结合业务进行了调整,下面是关于sql层面的优化点:一般我们判断记录是否存在,都会在mapper.xml中写如下的sql:select count(*) from xxx_0000 where is_deleted='N';使用datagrip执行上面的sql,在控制台可以看到如下输出:返回一条记录,耗时1s 690ms下面是对这条sql进行优化的改写:select count(*) from xxx_0000 where is_dele原创 2020-07-12 15:17:49 · 2484 阅读 · 0 评论 -
初识数据库
1.什么是mysql? (1)mysql是一个开放源代码的数据库管理系统(DBMS), (2)它是由MySQL AB公司开发、发布并支持的, (3)mysql是一个跨平台的开源关系型数据库管理系统, (4)广泛的应用在internet上的中小型网站开发中。 (5)mysql分为社区版和企业版 2.什么是数据库? 数据库就是一个长期存储在计算机内的,有组织的,有共享的,统一管理的数据集合原创 2016-03-06 15:31:42 · 1278 阅读 · 0 评论 -
数据库小知识
1.如何从日期时间值中获取年,月,日等部分日期或者时间值 首先日期在mysql中是以字符串形式存储的,所以可以使用字符串函数来获得你所需要的部分。比如t的字段值”2016-03-18 10:47:00”,如果要取得年的值,需要使用LEFT(t,4),这个就表示从该字段值的最左端开始起,四个数字后截取,然后就可以得到年这个值,如果是月的话,使用MID(t,6,2),表示从第6个位置起,数两位截取,就原创 2016-03-18 12:25:00 · 566 阅读 · 0 评论 -
数据库性能优化
1.什么是数据库优化 mysql的性能优化就是通过合理安排资源,调整系统参数使得mysql运行更快,更节省资源。mysq数据库优化的方面有很多,比如查询速度,更新速度,服务器等等,但是要保证一个原则:减少系统的瓶颈,减少资源的占用,增加系统的反应速度。 可以使用show status like 'value';查询mysql数据库的性能参数connections:连接mysql服务器的次数up原创 2016-03-16 22:06:26 · 903 阅读 · 0 评论 -
数据库日志
1.日志介绍 (1)mysql日志的分类错误日志:记录mysql服务的启动、运行或停止mysql服务时出现的问题二进制日志:记录所有更改数据的语句,可以用于数据的复制查询日志:记录建立的客户端连接和执行的语句慢查询日志:记录所有执行时间超过long_query_time的所有查询或不使用索引查询。 默认的情况下,所有的日志创建于mysql数据目录中,通过刷新日志,可以强制mysql关闭或原创 2016-03-16 21:25:31 · 902 阅读 · 0 评论 -
触发器
1.触发器的概念 触发器是个特殊的存储过程,执行存储过程需要使用CALL语句来调用而触发器的执行不需要使用CALL语句调用,也不需要手工启动,只要当一个预定义的事件发生的时候,就会被MYSQL自动调用。触发器可以查询其他表,而且可以包含复杂的SQL语句。它主要用于满足复杂的业务规则或要求。 2.创建触发器 (1)语法:create trigger trigger_name trigger_ti原创 2016-03-14 20:41:54 · 1166 阅读 · 0 评论 -
视图
1.视图概念 数据库中的视图是一个虚拟的表,视图包含一系列带有名称的行和列数据,行和列数据来自由定义视图查询所引用的表,并且在引用视图时动态生成。 视图是从数据库中一个或多个表中导出来的表,视图还可以从已经存在的视图上定义。 2.视图的含义 在定义完视图后,他就会存储在数据库中,与其对应的数据不像数据库中真实存在的表一样再存储一份,通过视图可以查看到的数据只是存放在基本表中的数据。视图也可以原创 2016-03-14 13:45:12 · 1523 阅读 · 1 评论 -
ARTS Share4 mysql中autocommit
MySQL中的事务(自动提交,显示和隐式),在MySQL中事务控制数据操作语句以确保它们是原子的。什么叫做原子的,也就是说这个事务要么成功,要么失败。什么时候算事务成功或者失败?当向数据库事务发送commit命令的时候,说明事务提交成功;相反,如果向数据库事务发送rollback命令,那么就说明此次的事务提交失败,所有执行过的SQL,数据会进行回滚到最初的状态。当对数据库数据进行修改的时候,...原创 2019-04-11 09:48:00 · 181 阅读 · 0 评论 -
mysql一行数据拆分为多行数据
最近有个项目中有个问题想在sql中解决,使用的是mysql并不是很熟悉,解决的问题是:将该条数据按照TXYMZL拆分为两条数据,我上网也查了一下,看到普遍是有两种做法:第一种:写存储过程来解决这个问题,但是用mysql一般不推荐使用存储过程,因为以后数据库版本升级或者数据迁移比较困难。第二种:使用mysql自带的一张叫做help_topic的自增序列表,可以解决这个问题。(用该方法的时候,...原创 2018-12-14 15:28:00 · 13675 阅读 · 2 评论 -
replace null or blank with 0 用空或者null来被0替换
在开发中遇到一个问题,在mysql中字段都为varchar型,但是有的没有值查出来是NULL,有的查出来是空。先来看一下mysql中的NULL和empty String的区别:1.A NULL value represents the absence of a value for a record in a field (others softwares call it also a miss...原创 2018-10-11 16:16:02 · 1856 阅读 · 0 评论 -
mysql函数str_to_date字符串转日期
14.STR_TO_DATE(str,format)字符串转日期函数(1)str:字符形式的日期(2)format:格式化样式STR_TO_DATE('1992-04-12',"%Y-%m-%d") 输出:1992-04-12(日期形式)原创 2018-08-27 21:45:53 · 3353 阅读 · 0 评论 -
mysql函数ceil和ceiling
CEILING(X) 或 CEIL(X)该函数返回的最小整数值,但不能小于X。 SELECT CEILING(3.46);#4 SELECT CEIL(-6.43);#-6原创 2018-07-21 10:47:25 · 7047 阅读 · 1 评论 -
mysql函数类型转换cast
cast函数类型转换CAST函数语法规则是:Cast(字段名 as 转换的类型 ),其中类型可以为:CHAR[(N)] 字符型 DATE 日期型DATETIME 日期和时间型DECIMAL float型SIGNED intTIME 时间型...原创 2018-07-21 10:46:48 · 709 阅读 · 0 评论 -
mysql截取字符串函数left和right和substring和substring_index
15.截取字符串(1)从左开始截取字符串 left(str,length)str:要截取的字符串length:要截取的长度select left(t.szzbm, 6) from T_AEFIXX t(2)从右开始截取字符串 right(str,length)str:要截取的字符串length:要截取的长度select right(t.szzbm, 6) from T_AEFIXX...原创 2018-07-21 10:46:08 · 1261 阅读 · 0 评论 -
mysql函数group_concat和FIND_IN_SET
11.group_concat([distinct] 要连接的字段 [order by 排序字段 ASC/DESC] [Separator '分隔符'] )函数(1)group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来。要返回哪些列,由函数参数(就是字段名)决定。分组必须有个标准,就是根据group by指定的列进行分组。(2)group_concat()函数需要与...原创 2018-07-21 10:44:26 · 985 阅读 · 0 评论 -
mysql函数IFNULL和NULLIF和ISNULL
10.IFNULL和NULLIF和ISNULL(1)IFNULL(A,B)IFNULL(fieldA,fieldB),意义是当字段fieldA是NULL时取fieldB,不是NULL时取fieldA的值。(2)isnull(expr)如expr为null,那么isnull() 的返回值为 1,否则返回值为 0。 (3)NULLIF(expr1,expr2)如果expr1=expr2成立...原创 2018-07-21 10:43:25 · 769 阅读 · 0 评论 -
mysql时间差函数datediff和TIMESTAMPDIFF
7.时间差函数:datediff(date1,date2)(1)select datediff(now(), now());#0(2)select datediff('2018-04-22 23:59:00', '2018-04-20 00:00:00');#28.时间差函数:TIMESTAMPDIFFselect TIMESTAMPDIFF(DAY, '2018-04-20 00:00:...原创 2018-07-21 10:40:27 · 2377 阅读 · 0 评论 -
mysql字符串连接concat和concat_ws函数
5.CONCAT(str1,str2,…) 函数:字符串连接(1)返回结果为连接参数产生的字符串。(2)如有任何一个参数为NULL ,则返回值为 NULL。(3)有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。(4)如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。(5)一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式...原创 2018-07-21 10:39:35 · 845 阅读 · 0 评论 -
mysql的LIMIT子句
4.LIMIT子句(1)可以被用于强制 SELECT 语句返回指定的记录数(2)接受一个或两个数字参数。参数必须是一个整数常量。(3)如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。SELECT * from t LIMIT 1;#返回第一条记录select * from t LIMIT 3,6;#返回六条记录,从第四条开始计算(4)Lim...原创 2018-07-21 10:38:45 · 1947 阅读 · 0 评论 -
mysql之TO_DAYS(date)、DATE_ADD,DATE_SUB函数
2.TO_DAYS(date)函数返回一个年份从0开始到当前日期的天数select TO_DAYS(CURDATE()) ;#7372603.DATE_ADD(date,INTERVAL expr type)函数:向日期添加指定的时间间隔。DATE_SUB(date,INTERVAL expr type)函数:向日期减掉指定的时间间隔。date 参数是合法的日期表达式。expr 参数是您...原创 2018-07-21 10:38:01 · 1403 阅读 · 0 评论 -
mysql日期格式化
SELECT CURDATE();#2018-07-20SELECT SYSDATE();#2018-07-20 14:46:01select DATE_FORMAT(SYSDATE(), '%Y-%m-%d %H:%i:%S');SELECT NOW();#2018-07-20 14:46:01SELECT UNIX_TIMESTAMP();#1532076402 获取毫秒数date_...原创 2018-07-21 10:36:23 · 786 阅读 · 0 评论 -
MySQL的连接查询及子查询
在校招的各种银行类笔试题中,数据库的题占据了绝大部分,其中数据库的查询考察的很多,而且尤其是各种连接查询,子查询,嵌套查询等等,所以我打算总结总结连接查询和子查询等知识点 1.连接查询分类 (1)内连接查询 (2)外连接查询(左外连接查询和右外连接查询) 2.内连接查询(INNER JOIN) 内连接使用比较运算符进行表间某列数据的比较操作,并列出这些表中与连接条件相匹配的数据行,组合成新原创 2016-03-07 21:53:15 · 2875 阅读 · 0 评论 -
mysql数据库备份和还原
1.mysqldump是mysql提供的一个非常有用的数据库备份工具,mysqldump命令执行的时候,可以将数据库备份成一个文本文件,该文件中实际上包含了多个create和insert语句,使用这些语句可以重新创建表和插入语句。 2.数据库备份 (1)mysqldump备份的基本语法mysqldump -u user -h host -p password dbname[tbname,[tbn原创 2016-03-16 19:30:58 · 1596 阅读 · 0 评论 -
MySQL用户管理
1.mysql用户 mysql用户可以分为普通用户和root用户。root用户是超级管理员,拥有所有权限,包括创建用户,删除用户和修改用户的密码等管理权限;普通用户只拥有被授予的各种权限。用户管理包括关系用户账户,权限等。 2.user表 (1)用户列 (2)权限列 权限列的字段决定了用户的权限,描述了在全局内允许对数据和数据库进行操作。包括查询权限,修改权限等普通权限,还包括了关闭服原创 2016-03-14 21:11:01 · 499 阅读 · 0 评论 -
MySQL5.6存储过程和函数
1.存储程序可以分为存储过程和函数,MySQL中创建存储过程和函数使用的语句分别是create procedure和create function,使用call语句来调用存储过程,只能用输出变量返回值。函数可以从语句外调用(通过引用函数名),也能返回标量值。存储过程也可以调用其他的存储过程。 2.存储过程的概念 存储过程就是一条或者多条SQL语句集合,可视为批文件,但是其作用不仅仅限于批处理。原创 2016-03-13 22:18:17 · 2298 阅读 · 0 评论 -
MySQL(5.6)数据库索引
1.索引的概念 索引是一个单独的,存储在磁盘上的数据库结构,它们包含着对数据表里所有记录的引用指针。使用索引用于快速找出在某个或多个列中有一特定值的行,所有的mysql列类型都可以被索引,对相关的列使用索引是提高查询操作速度的最佳途径 2.索引的优点和缺点 索引的在存储引擎中实现的,每种存储引擎的索引不一定完全相同,并且每种存储引擎也不一定支持所有的索引类型。根据存储引擎定义每个表的最大索引数原创 2016-03-12 22:33:59 · 3436 阅读 · 0 评论 -
MySQL---增删改查
1.基本查询语句SELECTSELECT {*|<字段列表>}[ FROM <表1>,<表2>... [ where<表达式> [GROUP BY <group by definition>] [HAVING<expression>[<operator><expression>...]] [ORDER BY<order by definition>]原创 2016-03-07 19:46:10 · 522 阅读 · 0 评论 -
MySQL聚集函数
1.COUNT() (1)统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数 (2)COUNT(*)计算表中总的行数,不管某列有数值或者为空值 (3)COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行。 2.SUM() (1)是一个求和的函数,返回指定列值的总和。 (2)SUM()在计算时,忽略列值为NULL的行。 3.AVG() (1)通过计算返回的原创 2016-03-07 20:04:55 · 924 阅读 · 0 评论 -
MySQL函数
1.数学函数 主要用来处理数值数据,在有错误产生时,将会返回空值NULL。 (1)绝对值函数:ABS(X) (2)返回圆周率的函数:PI(X)默认的显示6为小数。 (3)SQRT(X):返回非负数x的二次方根 (4)求余函数MOD(X,Y) 返回X被Y除后的余数,MOD()对于带有小数部分的数值也起作用,他返回除法运算后的精确余数。 (5)获取整数的汗水CEIL(X),CEILING(原创 2016-03-07 13:11:52 · 1407 阅读 · 0 评论 -
MySQL数据库表的基本操作
1.创建数据表就是在已经创建好的数据库里面创建数据表。创建数据表的过程就是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性,引用完整性和域完整性等)约束的过程。 2.创建表的语法: create table table_name ( 字段名,数据类型[列级别约束条件][默认值], 字段名,数据类型[列级别约束条件][默认值], ......原创 2016-03-06 22:22:58 · 908 阅读 · 0 评论 -
MySQL数据库的基本操作及存储引擎
1.创建数据库CREATE DATABASE db_name; (1)db_name是数据库的名称,该名称不能与库中已经存在的名称相同。 例如:创建一个名为book的数据库,并且查询所有的数据库显示出来 2.查询所有数据库:show databases; 3.查看数据库定义:show create database 数据库名称; 4.删除数据库:drop database db_n原创 2016-03-06 19:12:06 · 728 阅读 · 0 评论