
MySQL
文章平均质量分 75
Micrle_007
这个作者很懒,什么都没留下…
展开
-
jpa下hibernate的ddl-auto的各种属性
一般选择validate/update/none,绝对不能选 create, create-drop,update能帮助建表。如果希望实体类发生改动而数据库表做出相应的更改且不破坏数据库现有的数据,要将spring.jpa.hibernate.ddl-auto属性值设置为update。这里还有一点,就算把ddl-auto设置成update值,也不能识别对表结构的所有更改,往往只能识别出增加的字段,比如修改字段名,修改字段类型或者删除一个字段都是不能够识别的。原创 2024-06-18 10:15:12 · 2123 阅读 · 0 评论 -
mysql同步数据到ES的方案
mysql es转载 2023-07-04 21:55:47 · 2261 阅读 · 0 评论 -
springboot 整合 p6spy 插件打印sql执行时间以及真实sql内容
配置文件内容:(主要上面3个就够了,其他的可以自己可以根据需要配置)可以看到执行时间,以及后面跟着的执行真实sql。别的啥都不说,直接上代码!原创 2023-05-21 11:43:46 · 900 阅读 · 0 评论 -
一次对group by时间导致的慢查询的优化
oracle ,mysql转载 2023-03-01 09:17:24 · 2655 阅读 · 0 评论 -
DQL、DML、DDL、DCL的概念与区别
SQL(Structure Query Language)语言是数据库的核心语言。SQL的发展是从1974年开始的,其发展过程如下:1974年-----由Boyce和Chamberlin提出,当时称SEQUEL。1976年-----IBM公司的Sanjase研究所在研制RDBMS SYSTEM R时改为SQL。1979年-----ORACLE公司发表第一个基于SQL的商业化RDBMS产品。1982年-----IBM公司出版第一个RDBMS语言SQL/DS。1985年-----IBM公司出版原创 2021-11-25 17:14:53 · 135 阅读 · 0 评论 -
Navicat - 导入CSV注意事项
① 导入的时候,选择.csv 格式;② 编码–选择GB2312(我这里选择UTF-8,乱码);③ 日期那里,分隔符修改为”-“(csv文件中日期格式为/)。其中第三点需要酌情处理,不可一概而论。如果日期问题还是解决不了,强烈建议CSV格式转Excel格式...原创 2021-10-26 13:15:11 · 2086 阅读 · 0 评论 -
mysql可重复度能解决幻读吗
cnblogs.com/liyus/p/10556563.html引言之前在深入了解数据库理论的时候,了解到事物的不同隔离级别可能存在的问题。为了更好的理解所以在MySQL数据库中测试复现这些问题。关于脏读和不可重复读在相应的隔离级别下都很容易的复现了。但是对于幻读,我发现在可重复读的隔离级别下没有出现,当时想到难道是MySQL对幻读做了什么处理?测试:创建一张测试用的表dept:CREATE TABLE `dept` ( `id` int(11) NOT NULL AUTO_IN转载 2021-10-24 04:45:29 · 982 阅读 · 0 评论 -
Mysql连接的原理
搞数据库一个避不开的概念就是Join,翻译成中文就是连接。相信很多小伙伴在初学连接的时候有些一脸懵逼,理解了连接的语义之后又可能不明白各个表中的记录到底是怎么连起来的,以至于在使用的时候常常陷入下边两种误区: 误区一:业务至上,管他三七二十一,再复杂的查询也用在一个连接语句中搞定。 误区二:敬而远之,上次 DBA 那给报过来的慢查询就是因为使用了连接导致的,以后再也不敢用了。 所以本章就来扒一扒连接的原理。考虑到一部分小伙伴可能忘了连接是个啥或者压根儿就不知道,为了节省他们百度或者看其他原创 2021-10-17 08:58:00 · 470 阅读 · 0 评论 -
mysql exist和in的区别
表展示 首先,查询中涉及到的两个表,一个user和一个order表,具体表的内容如下: user表: order表: in 确定给定的值是否与子查询或列表中的值相匹配。in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选。所以相对内表比较小的时候,in的速度较快。 具体sql语句如下:SELECT*FROM`user`WHERE`user`.id IN (SELE...转载 2021-09-25 08:49:30 · 496 阅读 · 0 评论 -
mysql 交互式和非交互式操作(interactive_timeout和wait_timeout)
https://www.cnblogs.com/Alight/p/4118515.html交互式操作:通俗的说,就是你在你的本机上打开mysql的客户端,就是那个黑窗口,在黑窗口下进行各种sql操作,当然走的肯定是tcp协议。非交互式操作:就是你在你的项目中进行程序调用。比如一边是tomcat web服务器,一边是数据库服务器,两者怎么通信?在java web里,我们通常会选择hibernate或者是jdbc来连接。那么这时候就是非交互式操作。参考:MySQL中 timeout相关参数解析ht.转载 2021-09-22 20:36:54 · 756 阅读 · 0 评论 -
数据库操作指南
Query先要做参数验证,比如是否empty,是否符合一定的规则 其次日志要打清楚,特别是调用DAO的前后 合理的抛出异常Create首先对请求参数校验其合法性 其次查询该记录是否已经存在,只有不存在的数据才可以create 打好log,合理的抛出异常 request对象和db的pojo的转换 更新完之后查询一遍,把查询出来的结果封装到response里返回给调用端Update校验参数合法性 查询是否有该更新的记录 打好log,合理的抛出异常信息 更新完之后查询一遍,把查询原创 2021-06-15 20:42:30 · 120 阅读 · 1 评论 -
MySQL主从复制
我们在平时工作中,使用最多的数据库就是 MySQL 了,随着业务的增加,如果单单靠一台服务器的话,负载过重,就容易造成宕机。这样我们保存在 MySQL 数据库的数据就会丢失,那么该怎么解决呢?其实在 MySQL 本身就自带有一个主从复制的功能,可以帮助我们实现负载均衡和读写分离。对于主服务器(Master)来说,主要负责写,从服务器(Slave)主要负责读,这样的话,就会大大减轻压力,从而提高效率。接下来,跟着小羽一起来看看它都有哪些核心知识点呢:简介随着业务...原创 2021-06-10 09:23:21 · 210 阅读 · 0 评论 -
如何设置mysql数据库连接池的大小
连接池长连接的好处这么大,自然大家都用长连接。慢慢就搞出一套长连接维护的工具 - 数据库连接池。设计连接池也没有多么复杂,大致的步骤就是:初始化连接; 业务取出连接; 业务发送请求; 放回连接。除了上面的基本功能以外,还要处理并发问题,多数据库服务器和多用户,事务处理,连接池的配置与维护。大概就这些功能。有了连接池之后,连接的建立和释放跟业务就没有关系,交给交接池来维护。2. MYSQL 能支持多少连接MYSQL 的最大连接数在5.7版本中默认是151, 最大可以达到16384(转载 2020-12-10 22:41:24 · 5522 阅读 · 1 评论 -
mysql读写分离
在上一篇文章中,我和你介绍了一主多从的结构以及切换流程。今天我们就继续聊聊一主多从架构的应用场景:读写分离,以及怎么处理主备延迟导致的读写分离问题。我们在上一篇文章中提到的一主多从的结构,其实就是读写分离的基本结构了。这里,我再把这张图贴过来,方便你理解。图1 读写分离基本结构读写分离的主要目标就是分摊主库的压力。图1中的结构是客户端(client)主动做负载均衡,这种模式下一般会把数据库的连接信息放在客户端的连接层。也就是说,由客户端来选择后端数据库进行查询。还有一种架构是,在MySQ转载 2020-12-07 12:24:18 · 292 阅读 · 0 评论 -
mysql慢查询优化
https://www.cnblogs.com/dreamroute/p/11118581.html方法1: 直接使用数据库提供的SQL语句 语句样式:MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N 适应场景:适用于数据量较少的情况(元组百/千级) 原因/缺点:全表扫描,速度会很慢 且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3). Limit限制的是从结果集的M位置处取出N条输出,其余抛弃. ...转载 2020-11-30 08:55:02 · 250 阅读 · 0 评论 -
mysql实现分页
limit 基本实现方式一般情况下,客户端通过传递 pageNo(页码)、pageSize(每页条数)两个参数去分页查询数据库中的数据,在数据量较小(元组百/千级)时使用 MySQL自带的limit来解决这个问题:收到客户端{pageNo:1,pagesize:10}select * from table limit (pageNo-1)*pageSize, pageSize;收到客户端{pageNo:5,pageSize:30}select * from table limit (p..转载 2020-11-13 08:29:57 · 244 阅读 · 0 评论 -
innodb和myisam的区别
1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务;2. InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;3. InnoDB是聚集索引,使用B+Tree作为索引结构,数据文件是和(主键)索引绑在一起的(表数据文件本身就是按B+Tree组织的一个索引结构),必须要有主键,通过主键索引效率很高。但是辅助索引需..转载 2020-10-13 09:11:50 · 163 阅读 · 0 评论 -
mysql架构解析
这个博客记录了MySQL 5.7的物理和逻辑架构,还有其组件。在这个帖子中,我会尝试用图去说明SQL语句的执行流程和数据处理流程。MySQL的架构具备灵活性,因为它把不同的存储引擎作为插件。因此,MySQL的架构和行为也会随着存储引擎的改变而改变。我们重点讨论InnoDB,因为它是MySQL的默认存储引擎。MySQL物理架构配置文件auto.cnf: 包含server_uuid my.cnf: MySQL配置文件形形色色的其他文件 –basedir=dir_name /...转载 2020-10-13 08:47:21 · 421 阅读 · 0 评论 -
理解数据库中的undo日志、redo日志、检查点
redo undo机制是在数据库引擎曾实现的。undo机制UNDO机制如下:假设有A、B两个数据,值分别为1,2。A.事务开始.B.记录A=1到undo log.C.修改A=3.D.记录B=2到undo log.E.修改B=4.F.将undo log写到磁盘。G.将数据写到磁盘。H.从磁盘文件中删除之前的undo记录(事务提交)核心在于先写undo到磁盘,再写数据。这样,如果系统在GH之间崩溃,重启系统只需要按照undo重写即可。这个机制保证了事务的原子性,缺点在于每次日志提交都转载 2020-07-22 09:54:32 · 2288 阅读 · 1 评论 -
图解50道sql编写题
已知有如下4张表:学生表:student(学号,学生姓名,出生年月,性别)成绩表:score(学号,课程号,成绩)课程表:course(课程号,课程名称,教师号)教师表:teacher(教师号,教师姓名)根据以上信息按照下面要求写出对应的SQL语句。ps:这些题考察SQL的编写能力,对于这类型的题目,需要你先把4张表之间的关联关系搞清楚了,最好的办法是自己在草稿纸上画出关联图,然后再编写对应的SQL语句就比较容易了。下图是我画的这4张表的关系图,可以看出它们之间是通过哪些外键关.转载 2020-10-12 11:35:36 · 682 阅读 · 0 评论 -
mysql xa事务简单实现
xa事务操作#开启xa事务wshxa start ‘wsh’;#执行insert语句insert into name(id,name) values(1,‘wsh’);#这里必须是end 固定的操作方式xa end ‘wsh’;#提交会有返回值 决定后面的commit和rollback操作xa prepare ‘wsh’;#提交xa事务xa commit ‘wsh’;XA协议的特点1.同一个会话(同一个用户)跟普通是互斥的执行了 xa start ’wsh’ 后执行begin报错2.转载 2020-10-10 13:28:40 · 295 阅读 · 0 评论 -
mysql的data文件夹的位置以及作用
首先说下data文件夹在mysql中的地位:1、存放数据库文件的地方2、存放ibdata(所有数据库的信息都在这里)3、存放数据库的文件夹,比如有个数据库叫student,那么肯定有个student文件夹,存放student数据库所有文件就在这文件夹内ps:迁移数据库只需要找到数据库的文件夹和ibdata文件,把这两个拷到其他数据库即可,但记得备份ibdata文件,这个gg了,有其他东西都没啥用先上图,看到ProgramData了么,那个是隐藏文件夹,mysql的data文件夹就在.转载 2020-09-29 08:19:44 · 14906 阅读 · 0 评论 -
JDBC和数据库连接池的关系
原创 2020-09-23 14:44:36 · 360 阅读 · 0 评论 -
数据库连接池的深入理解
8.数据库连接池的connection都是长连接的,以方便多次调用,多人连续使用。dataSourcePool9.数据库连接池中的连接,是在你用完之后,返回给数据库连接池的,并不是close()掉,而是返回,以方便下次其他人使用。10.数据库连接池会自己通过代码用心跳机制,保证随时最小的连接connection数量同时存在,利用发送空数据的方式。11.我们平常用的数据库连接都是长连接的,因为我们每次都是从数据库连接池中去拿connection的!!!db source里都是长连接!!12.一个Connect转载 2020-07-23 16:55:37 · 980 阅读 · 0 评论 -
为什么300的并发能把支持最大连接数4000数据库压死
问: 为什么300的并发能把支持最大连接数4000数据库压死? 买了一台数据库,最大连接数的参数是 4000,看起来很棒!但是 cpu 和内存并不咋好!是 2c4g的超低配制。 但是想着反正业务量也不大,不如先扛着,等业务量上来再进行升配! 没过多久,进行一次小量的营销活动。粗略计算想了下,大约3-4台应用服务器就没问题了;然后再考虑下数据库,应该没有问题。考虑到数据库没问题的原因有二: 1. 应用服务器数量少,对数据库压力不会太大; 2. 每个应用都设置...转载 2020-07-24 13:33:46 · 501 阅读 · 0 评论 -
对事务一致性的理解
事务的一致性简单一句话就是事务执行前后,数据库的数据是合理的,1、对于单体而言,比如一个事务包括3个更改数据库的操作,那这3个操作如果有一个异常了,那么事务就会回滚,回滚的目的就是为了保证数据的一致性,既然把这3个操作放在一个事务里,那这3个操作肯定是相关联的,换句话说就是相互影响的,假如没有回滚,那么其他两个操作的数据就正常更新到数据库了,这样数据就不一致了,因为异常的那个操作并没有达到预定的结果2、对分布式系统也是一样,就是保证不管事务执行前还是执行后,数据都要是合理的,我不管事务中间执行的过程原创 2020-05-29 19:43:44 · 2103 阅读 · 2 评论 -
mysql可重复读理解
一、可重复读我们先看看现象,再分析原理。我的mysql版本是5.5。下面是一张表,只有一条数据,并且我开启了事物此时,另一个事物将record加1,因此我在开启一个命令行客户端,执行下面的命令:成功加1之后,实际上,数据库中record肯定是2。然后回到之前的客户端,再查一次:没毛病,record还是1,果然是可重复读。有些人以为mysql的可重复读是通过行锁实...转载 2019-12-10 20:52:58 · 231 阅读 · 0 评论 -
mysql中表示金钱的类型
NUMERIC和DECIMAL类型被MySQL实现为同样的类型,这在SQL92标准允许。他们被用于保存值,该值的准确精度是极其重要的值,例如与金钱有关的数据。当声明一个类是这些类型之一时,精度和规模的能被(并且通常是)指定;例如:salary DECIMAL(9,2)在这个例子中,9(precision)代表将被用于存储值的总的小数位数,而2(scale)代表将被用于存储小数点后的位数。因此,...翻译 2019-10-22 22:17:30 · 1517 阅读 · 0 评论 -
关系型数据库的ACID特性
谈谈数据库的ACID 帅宏军一.事务 定义:所谓事务,...转载 2018-12-24 14:13:57 · 2501 阅读 · 1 评论 -
mysql数据库分表及实现
https://www.cnblogs.com/miketwais/articles/mysql_partition.html项目开发中,我们的数据库数据越来越大,随之而来的是单个表中数据太多。以至于查询书读变慢,而且由于表的锁机制导致应用操作也搜到严重影响,出现了数据库性能瓶颈。当出现这种情况时,我们可以考虑分表,即将单个数据库表进行拆分,拆分成多个数据表,然后用户访问的时候,根据一定的...转载 2019-02-17 22:28:08 · 248 阅读 · 0 评论 -
Java实现mysql的读写分离
https://blog.youkuaiyun.com/liu976180578/article/details/77684583我们一般应用对数据库而言都是“读多写少”,也就说对数据库读取数据的压力比较大,有一个思路就是说采用数据库集群的方案,其中一个是主库,负责写入数据,我们称之为:写库;其它都是从库,负责读取数据,我们称之为:读库; 那么,对我们的要求是:1、读库和写库的数据一致...转载 2019-02-17 23:24:16 · 3404 阅读 · 0 评论 -
mysql 修改登录用户名和密码
(1)修改数据库用户名首先我们需要先登录自己的数据库,然后输入一条下面的语句select user from mysql.user;这条语句是用来显示目前已有的用户名,回车后,结果如下:mysql> select user from mysql.user;+------------------+| user |+-----------------...转载 2019-08-19 09:44:10 · 1833 阅读 · 1 评论 -
关系型数据库一致性的理解
读的一致性: 一个查询select 开始头 可能要查很长时间, 不管他查多久 如果返回结果 那么结果为 查询开始时间的结果,不会有一半结果是 查询开始时的 一半是查询过程中的(这个过程中可能会有其他事务对数据库进行修改,但是一致性的性质保证了查询结果就是开始查询时数据库里面数据的状态,不包括修改后的状态),因为整个过程中可能发生很多事务 很多 数据变化。写的一致性也是这么理解...原创 2018-06-18 18:58:31 · 2673 阅读 · 0 评论 -
MySQL 如何删除有外键约束的表数据
在MySQL中删除一张表或一条数据的时候,出现?1[Err] 1451 -Cannot deleteorupdatea parent row: aforeignkeyconstraintfails (...)这是因为MySQL中设置了forei原创 2016-10-04 10:38:42 · 15644 阅读 · 1 评论 -
MySQL官网下载方法
打开百度搜索,输入MySQL,第一个是MySQL官网 点击第一个链接地址,进入MySQL官方网站,单击“Downloads”下载Tab页,进入下载界面 找到Community并且单击它,出现以下的页面 查看Community对应左侧下方选项,单击第四个“MySQL Community Server” 进入MySQL选项下载列表,选...原创 2018-11-26 09:51:30 · 4631 阅读 · 1 评论 -
把 mysql sql_mode 设置为严格模式的方法
1.可以通过执行SQL语句来开启,但是只对当前连接有效,下面是SQL语句:set sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";2.通过修改MySQL的配置文件,在配置文件中查找sql-mode,将此行修改成为:sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREAT...转载 2018-07-15 09:41:40 · 3831 阅读 · 0 评论 -
MySQL 创建主外键
外键定义语法:[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, …)REFERENCES tbl_name (index_col_name, …)[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}][ON UPDATE {RESTRICT | C原创 2016-10-03 10:53:25 · 2170 阅读 · 0 评论 -
mysql 密码输入正确,登陆失败的原因
从命令行输入密码登录mysql 的时候,当密码输入正确,而且出现如下提示的时候:可能是因为你的mysql没有启动的原因造成的,解决方法:鼠标右键“我的电脑(或者是计算机/此电脑)”点击“管理”,并按照如下图操作,点击“启动”即可,可以把“启动类型”设置为自动,这样每次启动计算机的时候,就不需要手动点击启动了原创 2017-09-09 15:11:53 · 7697 阅读 · 4 评论 -
MySQL安装之后如何启动
安装好MySQL之后,在MySQL的安装目录下找到MySQL server 的目录,如下图所示:在该文件夹下,找到 bin 文件夹,并把该文件夹的路径新增到系统变量的 path 路径中,然后在命令行输入:mysql -uroot -p(注意没有分号)即可进入mysql ,输入密码即可进入mysql原创 2017-09-08 14:53:50 · 50576 阅读 · 2 评论 -
mysql中to_char()和str_to_date()函数
1、mysql内置函数,在mysql里面利用str_to_date()把字符串转换为日期。示例:分隔符一致,年月日要一致、select str_to_date('2016-09-09 15:43:28','%Y-%m-%d %H:%i:%s');select str_to_date('2016-09-09 08:43:28', '%Y-%m-%d %h:%i:%s');转载 2017-09-15 09:35:30 · 8389 阅读 · 0 评论