数据库
文章平均质量分 56
花开不识君
本来无一物,何处惹尘埃!
展开
-
MySQL的默认排序
MySQL的默认排序默认排序就是没有排序,如果你希望有序请使用order by问题的引出在一个排行榜表中,前端展示要求根据score进行排序,尝试了几次,当积分相同时我发现时以主键ID(或者说根据创建时间)的大小进行了升序排序正当以为一切万事大吉时,测试反馈score相同时,并没有根据创建时间进行顺序排列,我一查数据如下果然这三行score相同的数据可以说是毫无顺序结论mysql在你不指定排序方式的时候无法保证根某种方式排序(主键ID)问题与思考既然mysql能将数据以某种顺序返回原创 2022-02-25 13:44:00 · 2307 阅读 · 0 评论 -
MYSQL 索引下推
MYSQL 索引下推(Index Condition)背景介绍官方文档链接官方定义Index Condition Pushdown (ICP) is an optimization for the case where MySQL retrieves rows from a table using an index. Without ICP, the storage engine traverses the index to locate rows in the base table and re原创 2022-02-19 22:53:01 · 450 阅读 · 0 评论 -
MySql死锁问题
MySql死锁问题插入死锁产生背景比如在商品秒杀的场景中,我们需要进入商品的流水情况,此时并发压力较大,不进行处理容易出现死锁核心条件:n(n>2)个线程并发插入流程示意图Client AClient BClient CbeginbeginbeginINSERT INTO user(id,name) VALUES(1,‘a’) 成功获取到X锁INSERT INTO user(id,name) VALUES(1,‘a’) 获取到S锁INSER原创 2022-01-17 20:36:40 · 767 阅读 · 0 评论 -
MySQL索引失效场景
索引失效发生场景隐式类型转换隐式类型转换拿常见的 varchar 和 int 来举例子int 隐式转换为 varchar 将导致索引失效varchar 隐式转换为 int 不会导致索引失效解释究其原因,是因为一个数字可能是多个varchar被转化的结果,而一个varchar只会被转化为一个数字打个比方,一个拼音对应着多个汉字,要要让你根据拼音找找出汉字本身就是不实际的按图索骥的索引不允许中间有模糊不清的说法,所以最终导致的无法利用索引。验证name 是 varchar类型原创 2021-11-05 09:36:02 · 325 阅读 · 0 评论 -
百万数据量下,使用延迟关联优化超大分页
百万数据量下,使用延迟关联优化超大分页MySQL 并不是跳过 offset 行,而是取 offset + N 行,然后返回放弃前 offset 行,返回 N 行,那当offset 特别大的时候,效率就非常的低下延迟关联根本原理在于利用索引覆盖,避免二次回表,提高性能,延迟关联则是通过使用覆盖索引查询返回需要的主键,再根据主键关联原表获得需要的数据。模拟百万条数据表结构DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` in原创 2021-08-10 15:58:12 · 298 阅读 · 0 评论 -
基于RedisTemplate封装的工具类
基于RedisTemplate封装的工具类期望简化redisTemplate的操作package com.huakai.utils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.data.redis.core.RedisTemplate;原创 2021-06-26 11:29:57 · 764 阅读 · 0 评论 -
Redis学习笔记
Redis操作命令基础命令查看所有的key命令keys *清空当前数据库flushdb 清空当前数据库flushall(清空所有数据库)Key命令判断key是否存在exists key 移除keydel key设置过期时间expire key time(单位为秒)查看类型type keyRedis基础语法原文Redis is an open source (BSD licensed), in-memory data structure store, u原创 2021-06-25 21:35:27 · 171 阅读 · 1 评论 -
You can‘t specify target table
问题描述:增加一个文章置顶功能,使用一个字段(初始为零)来表示文章的优先级,每次置顶让对应文章的该字段+1于是有了这样一段sql <!--文章置顶--> <update id="updateBlogTop"> update blog set top = (select max(top) from blog where author_id = #{authorId}) + 1 where id = #{artic原创 2021-02-28 14:17:58 · 973 阅读 · 0 评论