![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 58
mysql相关问题,解决
寂寞旅行
编程原则>>>不写代码: 不修改原有代码,尽量不增加新代码,不重复造轮子
在开始的几年中,在csdn中查到了解决开发问题的方法,现在也想成为帮助他人的一份子,出一份力;记录工作点滴困难,让后来者少走弯路;从涉及springboot,springcloud全家桶,mybatis,mp,influxdb,nebula,mysql,redis,mongodb,rabbitmq,多线程编程,分布式锁,html,jsp,jquery;取得系统集成中级证书;
展开
-
获取分组后的最新一条记录
例如: 我有一张表记录着所有人员的打卡记录,我想获取每个人的最新一条记录;例如: 我有一张表记录着所有设备的上报记录,我想获取每个设备的最新一条上记录;等等类似相关的需求/**//*!/*!/*!/*!/*!/*!USE `test`;(1,'学习java','菜鸟教程','2023-01-14'),(3,'学习php','菜鸟教程1','2023-01-14'),(4,'学jsp','菜鸟教程','2023-01-14'),原创 2024-03-23 13:23:21 · 284 阅读 · 0 评论 -
Mysql设计规范
【代码】Mysql设计规范。原创 2024-03-17 18:56:27 · 288 阅读 · 0 评论 -
mysql8支持的json数据
上一篇讲了下mysql8中的自带的递归函数,这次简单说下mysql8中的新支持的数据json格式使用;其实这个新增的类型json我们比较熟悉,如果熟悉java 其实用法也没有很稀奇;如果你之前有了解过mongodb,那么你会觉得这是在模仿吧?哈哈 $ …这些调用,简直就跟复制功能一样~~如果用json,其实可以解决一些常见的,就例如订单–订单详细之类的,就不用连表查询了,而且订单明细,基本不会再变动,类似这种数据,的确可以使用json格式优化;原创 2023-10-07 14:20:10 · 363 阅读 · 0 评论 -
Navicat15管理工具安装注册
作为优秀的mysql管理工具之一,今天给大家带来丝滑的使用体验(直接注册)Navicat是一套综合的数据库管理工具,可以管理 MySQL、Oracle、PostgreSQL、SQLite、SQL Server、MariaDB 和 MongoDB 等不同类型的数据库官网下载都是有14天的试用期的,特别是全功能的Premium。如果经济实力允许的话,还是希望大家去官网下载,支持正版。对于学生党,可以先尝个鲜。好的,废话不多说了,直接上教程。原创 2023-07-21 15:52:21 · 178 阅读 · 0 评论 -
mysql创建用户授权
在mysql的使用中,避免不了要给他人使用我们自己的数据库,此时为了使用安全,我们不想让对方看到过多的数据库,或者减少它对于我们数据库可能造成的破坏,赋予他部分权限,以确保我们数据库的安全性,如何做呢?grant 是授权的意思:说明: privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALLdatabasename:数据库名 tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*原创 2023-07-24 09:27:06 · 368 阅读 · 0 评论 -
windows上的mysql服务突然消失: 10061 Unkonwn error
至此mysql服务已经恢复了;并且之前设置的mysql 用户名密码也是不变的,而且之前的数据也都ok的。原创 2023-07-13 06:00:00 · 218 阅读 · 0 评论 -
分库分表--shardingjdbc
当项目开始的时候,没有想到后续的分库分表的话,其实对于后续的分库分表操作多少会有一些较难处理的,所以一般分库分表都是在开始的时候就提前已经规划了,已经预留了口子,之后才能顺利的进行;其实也不是必须要分库分表,由于国产高性能数据库等的出现,例如 tidb,完全遵守sql92标准,其实直接换上这个也是个非常不错的选择;Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务。原创 2023-04-14 18:49:22 · 2736 阅读 · 1 评论 -
2020-11-06 索引
什么是索引?作用是什么?索引提供只想存储在表的指定列中的数据值的指针,然后根据指定的排序顺序对这些指针排序,数据库使用索引以找到特定值,然后根据指针找到包含该值的行,这样可以使对应于表的sql语句执行的更快,可快速访问数据表中的特定信息。说白了,建立索引的列,在查询的时候,可以加快查询速度。那么既然如此,那就把所有的列都加上索引呗,这就加快了查询速度,事实是这样的吗?回答是 否定的,并非如...原创 2020-11-06 14:42:13 · 59 阅读 · 0 评论 -
还在用递归?一文带你了解mysql数据库层面的树状查询
开发过程中遇到树状数据的查询有很多,例如常见的就是菜单的树状查询一般情况下,这种子父关系的数据,解决办法如下几种:1 我们可以在程序中,查询所有菜单数据,然后通过递归调用,达到一个树状数据组装的目的,或者查询一个节点下的所有子集(递归子集),或者查找一个节点的所有父级集合;2 我们可以通过在表中设计多个字段, 例如 path (代表该节点的路径,3节点的路径,如: 1,2,3) 等办法,维护这样的一个字段,也可以快速定位到子集或者父级,那么这里有个成本,就是要多维护这个字段。原创 2022-09-22 12:13:26 · 4740 阅读 · 0 评论 -
mysql 函数not exists
首先 upms_user 与 upms_user_role_rel 通过user_id建立联系的,那么() 括号中的查询其实是找到了所有在角色表中的用户,然后 外面用 not exists,意味着不在当前的集合中,所以是ok的,满足需求,那么select 1 怎么理解呢?我自己试了一下,无论你写 select 后边跟什么东西,比如表中的哪个字段,他都是成功的;由于咱们是通过用户id关联的,他已经对用户表进行了过滤,外面还是用户表,所以它是ok的,无论哪个字段,都是不影响结果的;原创 2022-01-10 10:31:18 · 1110 阅读 · 0 评论 -
2020-12-04 mysql 函数
CREATE FUNCTION query_all_dgm_device( )RETURNS VARCHAR(50) CHARSET utf8 READS SQL DATARETURN(SELECT GROUP_CONCAT(id) FROM dgm_device)基本语法CREATE FUNCTION <函数名> ( [ <参数1> <类型1> [ ...原创 2020-12-07 17:26:47 · 60 阅读 · 0 评论 -
mysql存储过程
为什么一定要这样呢?这个存储过程的作用很简单,就是传入一个参数,当 device_name = na OR device_id = na 和他相等的查询条件.存储过程我也没怎么用过,很浅显,大多都是直接调用,类似于一个封装好的接口一样,传入指定参数(或者不传),然后执行约定好的逻辑,执行;改为// // 表示一句话的结束。// 如果存在findbyname同名的存储过程删除 // 结束。USE assets // 用assets这个库 // 结束。END // 结束语 表示存储过程结束 // 结束。原创 2021-01-27 14:31:04 · 92 阅读 · 0 评论 -
mysql函数
这里指的是自定义函数,不是mysql中的内置函数DELIMITER $$DROP FUNCTION IF EXISTS genPerson$$CREATE FUNCTION genPerson(NAME VARCHAR(20)CHARSET utf8) RETURNS VARCHAR(50) CHARSET utf8BEGIN DECLARE str VARCHAR(50) CHARS...原创 2021-01-27 15:01:03 · 67 阅读 · 0 评论 -
聊几个mysql的内置函数
any 比任何一个小的就算条件通过,那么相当于去掉了最大值。all 与所有的id相比都小于或者等于,那么就是最小的那个。exists 存在.关联后在用户表中已经被使用的角色数据。/***exists 函数。/***any 函数。/***all 函数。原创 2022-09-29 09:40:42 · 145 阅读 · 0 评论 -
mysql 组合索引
CREATE TABLE test (id int(11) NOT NULL AUTO_INCREMENT,aid varchar(20) NOT NULL DEFAULT '' COMMENT 'aid',bid varchar(20) NOT NULL DEFAULT '' COMMENT 'bid',cid varchar(20) NOT NULL DEFAULT '' COMMENT 'c...原创 2022-03-03 16:21:44 · 609 阅读 · 0 评论 -
如此丝滑的国产数据库TiDB 纵享丝滑(mysql)~
TiDB官方文档简单总结下:1 大于mysql 与mysql完美适配2 分布式 支持分布式事务3 性能强悍 底层存储与计算分离,更高效4 pd :全局调度 tikv: 真正的存储位置 tidb-server: 适配mysql协议5 目前适配mysql5.7 支持8.0 ing6 目前仅支持linux安装最近CSDN出了一个国产数据库的活动,其中TiDB呼声较高,今天一看,果然非同凡响,既然这样,是不是意味着,以后就要和mysql说拜拜了~~原创 2022-10-12 15:32:14 · 4565 阅读 · 0 评论 -
2021-02-01 mysql 计算两个时间的差值
SELECT timestampdiff( Second, '2009-8-25 12:15:12', '2009-9-1 7:18:20') -- 返回相差秒数SELECT timestampdiff( Minute, '2009-9-1 6:15:12', '2009-9-1 7:18:20') -- 返回相差分钟数SELECT timestampdiff( Day, '2009-8-25...原创 2021-02-01 17:20:39 · 89 阅读 · 0 评论 -
mysql函数创建
参数:存储过程对待参数有三种方式:输入(IN),输出(OUT)和输入并输出(INOUT),因为有三种方式所以必须对参数指明其用途;对于存储函数只有一种方式:输入参数,因此不需要写IN;函数有一个returns type(注意这里的return后加上s),存储过程没有也不需要这个返回语句。另外需要说明的是,returns只能对function做指定,对函数而言这是强制的,它用来指定函数的返回类型,因此函数体内必须包含一个return值,即一句return的代码。原创 2023-02-07 15:07:12 · 4519 阅读 · 0 评论 -
mysql索引数据结构
Q1: 为什么用了mysql的索引之后查询会加快?Q2: 索引越多越好嘛?Q3: 索引的数据结构是什么样的,特点是什么?Q4: 二叉树, HASH,BTree 为什么选择Btree?回答Q1不用索引查询的时候,如果有100条记录,那么当我查询一条记录的时候,最坏情况就需要在数据库中进行100此比对,数据了越大增长越快;当用了索引之后,索引的数据结构是一棵树,这样查找的时候,会二分查找,...原创 2022-03-17 09:12:56 · 168 阅读 · 1 评论 -
mysql 的binlog日志查看
mysqlbinlog.exe --no-defaults --base64-output=decode-rows -v D:\Users\sunhailong\log\mysql-bin.009788 > D:\Users\sunhailong\log\text1.txt打开mysql服务的bin文件夹然后执行上述命令第一部分固定的 mysqlbinlog.exe --no-defa...原创 2022-01-20 11:45:29 · 1234 阅读 · 0 评论 -
mysql主从复制
mysql主从复制解决问题: 高并发,灾难恢复,读写分离,故障转移mysql01 mysql02数据实时同步: 是通过执行的dmlsql语句(包括增删改),写入到二进制日志binlog文件中,来实现数据同步的. 从 数据库开启一个io线程读取 主 数据库中的binlog文件,读取到后,开启一个sql线程,执行binlog文件.达到复制数据的效果说白了,就是有记录了所有的增删改操作,然后从...原创 2020-09-10 14:06:45 · 83 阅读 · 0 评论 -
mysql group by 报错
3.重启mysql :service mysqld restart。第一种的方式无非两种: 要么改配置文件,要么用执行命令改现有模式。1.修改配置文件,执行命令:vim /etc/my.cnf。修改mysql配置文件/etc/my.cnf。其实就是sql中查询的字段不在分组的字段中。这个问题的解决办法大致两种。1 改变sql_model。2 加any_value。第二种加特殊函数处理。原创 2021-12-30 14:09:50 · 1162 阅读 · 0 评论 -
web方式的mysql管理工具
很多公司目前都是推行,不让用破解的软件,前端开发软件还好,最近国产软件兴起,Hbulider等一系列的兴起,足以支撑前端开发的程序猿,但是后端用的软件实在太多了,比如mysql管理工具,这玩意儿就没有不是破解版的,Navicat solyog等等,其实还有人说用IDEA中自带的数据库管理工具,其实也是可以的;今天推荐一款web页面的mysql管理工具,类似php的基于web的管理工具;原创 2022-10-24 17:53:29 · 4327 阅读 · 2 评论 -
mysql 视图
mysql 视图,说白了就是一张临时表,不过此表可以同步生成此视图的表格的数据;什么意思呢?举个栗子,创建一个视图: 根据表A,和表B生成的,生成了一个视图(临时表C),表C中有个字段 为A表的name,当表A中的name修改后,视图表C,会自动同步修改使用场景:我认为使用的场景就是比较复杂的查询耗时的查询,那么可以通过视图将查询的中间结果作为视图,加快查询速度.也可以是复杂查询的分步查...原创 2021-01-26 16:46:32 · 270 阅读 · 0 评论 -
mysql 隔离级别
在A事务开启后,查询出来的数据 (第一次查询), 然后在B事务中对A中查询的数据进行更改,并提交事务,此时A中再次进行查询(第二次查询),发现数据被改了(事务B改的),在A事务中,同一个事务两次查询数据不一致,即不可重复读.虽然不一致,但是B事务确实提交了,而且读取到的是已提交的事务的结果, 对吧?答案是不会的,虽然是可重复读,读取到的还是当前事务开始时候的数据,但是当去执行修改的时候,还是能读取到已经提交的B事务的数据,id =1 and value = 5 的限定条件在执行修改的时候是查询不到数据;原创 2021-12-31 09:49:40 · 621 阅读 · 0 评论 -
大量数据下分页越来越慢
比如我的表中有100w条数据,然后页面要展示,那么一定要分页查询,每页10条,当前几百条的时候,都没有问题,正常翻页,但是,当你翻到最后一页,开始一页一页往前翻,你会感受到,非常的卡!比如 第30000页 50000页。select * from 表 limit 50000,10 此种查询方式查询的是所有用到的字段,不建立组合索引,就不会用到索引,那么他只能扫描定位到第5w条数据,然后抛弃,再取十条数据,所以很慢。然后大数据下多表关联查询的时候,尽量建立有效索引,这样可以加快查询。原创 2021-02-02 14:14:43 · 703 阅读 · 0 评论 -
通过canal将mysql数据同步到es中
哇哇哇~~~~~~~~~~~~~~~~~~~~~~~~~~~至此,大功告成!4 当看到canal-adapter的日志中有mysql的dml日志的时候,说明已经离成功很近了。可以看到 canal-adapter 中已经接受到了mysql 的dml操作语句!接下来,通过命令触发,让canal-adapter读取到的dml日志,同步到es的库中;3 canal 的配置很复杂~~一个不小心就会导致同步数据的时候错误,要很小心。3 canal 的 数据同步不是自动的,需要触发!原创 2022-06-10 14:33:37 · 5130 阅读 · 3 评论