SQL
数据库
道甚夷
今日的礼物
展开
-
mysql 过滤重复数据以及删除表中的重复数据保留一条数据的方法
从前面查询重复的数据,加上排除最小的数据,就是我们要删除的多余的重复的数据。原创 2024-02-28 12:09:49 · 1367 阅读 · 1 评论 -
mysql 多版本并发控制mvcc
InnoDB通过为每个事务在启动时分配一个事务ID来实现MVCC。当不同的会话(事务B)读取聚簇主键索引记录时,InnoDB会将该记录的事务ID与该会话的读取视。Undo记录,并且事务的回滚指针指向该Undo日志记录。在该事务中修改记录时,将向Undo日志写入一条说明如何恢复该更改的。如果当前状态下的记录不应可见(更改它的事务尚未提交),那么Undo日。志记录将被跟踪并应用,直到会话达到一个符合可见条件的事务ID。循环到完全删除这一行的Undo记录,然后向读取视图发出这一行不存在的信号。原创 2024-01-25 18:53:22 · 553 阅读 · 0 评论 -
mysql数据库锁
【代码】mysql数据库锁。原创 2024-01-25 18:11:07 · 400 阅读 · 0 评论 -
数据库四种隔离级别
mysql的隔离级别机制默认是3。结合锁操作,常规操作。原创 2024-01-25 16:47:04 · 377 阅读 · 0 评论 -
mysql in 走不走索引
当只有一个值的时候,是ref当小范围的时候,是range当数据过多时,索引有可能失效(数量是全表30%时)原创 2024-01-04 15:04:01 · 490 阅读 · 0 评论 -
laravel api资源的问题记录
层次嵌套很多,而且很深,这样虽然开发方便了,但是维护就困难了,除了需要理清楚各层的关系,在toArray里面使用sql查询的时候,还会导致n+1的问题。resource 转换层 可以帮助我们转换一些字段的结果,类似前端的filter。可以使用比如对象或者模型的形式来处理,但使用sql查询会导致n+1的问题。这些逻辑最好是抽离出来处理,使用with来优化。原创 2023-12-27 11:02:52 · 459 阅读 · 0 评论 -
laravel 懒加载和预加载,n+1问题,with。
多条查询会更慢,查询时间是加上每次链接和断开的,这会导致查询n+1的问题,laravel里面使用with来解决这个问题。原创 2023-12-27 10:44:13 · 499 阅读 · 0 评论 -
sql 随机排序优化
是将最大的id查出来,然后使用程序来随机id,从而使用in来查询,最后使用判断来兜底看看结果条数符不符合需要的随机总数要求,不过就递归处理。这样在数据小的情况小是ok的。但如果是要一次查询200-2000条,就不好了。总结:最好的处理方式是,随机多个存在的id,然后一次性in来查询。但这条语句有个问题,他的id是排序的,因为使用了。laravel语句生成的原生写法。上面会导致order by的产生。此方式可以去除order by。这种也是一次查询一条。原创 2023-12-27 10:39:58 · 576 阅读 · 0 评论 -
sql null的坑和优化
类型的语句,导致索引失效。网上查看了一些null的缺陷,摘抄记录一下。最近优化接口api,查看了sql语句来优化,看到很多语句都是带着。原创 2023-12-27 10:29:20 · 409 阅读 · 0 评论 -
mysql 设置本地数据库供外部访问
【代码】mysql 设置本地数据库供外部访问。原创 2023-11-27 18:43:14 · 576 阅读 · 0 评论 -
mysql查询去重的数据的总数
【代码】mysql查询去重的数据的总数。原创 2023-11-27 14:50:50 · 494 阅读 · 0 评论 -
mysql join on的on当作where使用
把on当作where,以前写过但是比较少用就容易忘记,记录一下。原创 2023-11-27 14:46:38 · 375 阅读 · 0 评论 -
mysql根据子查询id删除重复的数据
my.ini在[mysqld]下面新增。进入sql交互环境,使用命令行高速导入。原创 2023-11-27 14:41:31 · 421 阅读 · 0 评论 -
mysql导入大数据
my.ini在[mysqld]下面新增。进入sql交互环境,使用命令行高速导入。原创 2023-11-22 17:51:53 · 355 阅读 · 0 评论 -
MySql表中添加emoji表情
共五处需要修改。原创 2023-11-22 10:42:02 · 430 阅读 · 0 评论 -
MongoDB操作基本教程
v6.0.7。原创 2023-07-13 18:22:26 · 1525 阅读 · 0 评论 -
prisma同时执行更新三个数据库数据
prisma同时执行更新三个数据库表。原创 2023-03-28 16:33:18 · 572 阅读 · 0 评论 -
mysql: create table: Specified key was too long; max key length is 1000 bytes
action: prisma 迁移数据库到本地mysql测试库。聚焦到这个表,发现前两个id的值用作索引加起来超过了1000。命令行报错后,将文件拿出来去执行mysql。本地数据库设置问题,改回来,执行通过,ok.本地使用myIsam,线上使用InnoDB。后面对比线上和本地数据库的表结构发现。减少191的值就可以执行通过。原创 2023-03-23 16:02:58 · 90 阅读 · 0 评论