mysql
文章平均质量分 58
黄贞辉
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
索引和深分页优化案例
因为在B+树中,当第一个字段app的值确定之后(对应where app = 某值),第2个字段run_timer的值就会进行排序存储,因为这个存储规则,所以才避免了额外排序。通过子查询先把10条数据的主键id task_id 获取到,然后在外循环再去回表取10条数据,最终只回表10次。1、在联合索引树中查找100010条满足条件 app=某值 的数据。2、通过id回表查询其他字段信息,回表 100010次。3、扔掉100000条数据,取最后10条返回。原创 2024-06-20 15:31:17 · 619 阅读 · 0 评论 -
查询某字段每个相同值的最新10个
【代码】查询某字段每个相同值的最新10个。原创 2023-03-13 21:10:28 · 148 阅读 · 0 评论 -
mysql的3个排名函数
说明:和rank() over 的作用相同,区别在于dense_rank() over 排名是密集连续的。例如学生排名,使用这个函数,成绩相同的两名是并列,下一位同学接着下一个名次。即:1 1 2 3 4 5 5 6。说明:例如学生排名,使用这个函数,成绩相同的两名是并列,下一位同学空出所占的名次。作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续。作用:查出指定条件后的进行排名,条件相同排名也不相同,排名连续。作用:查出指定条件后的进行排名,条件相同排名相同,排名连续。转载 2023-01-04 15:16:06 · 1330 阅读 · 0 评论 -
pgsql在navicate导出sql再去其他库导入时会遇到的小问题
1、注释里开头如果是数字,默认不会帮忙加上单引号,导出的语句直接没有帮忙加单引号’ ',导致执行出错。导出的语句直接默认帮忙加单引号,导致单引号匹配错位,执行出错。2、注释里 内容包含单引号 如。3、导出时这句sql执行通不过,原创 2022-08-24 10:58:00 · 923 阅读 · 0 评论 -
Mysql事务隔离级别、锁、MVCC(多版本并发控制)
这个隔离级别保证了b事务多次读取,结果都一样。不可重复读:事务a内部多次读取时,事务b修改完提交了,事务a中途读取到了事务b提交的数据,前后不一致。幻读:事务a按相同的条件去查询之前查过的数据,却发现事务b插入的新数据。脏读:事务a读取事务b未提交的数据,事务b回滚了之后,事务a不知道。因为是可重复读级别,a事务没有提交是查不到了,就算a事务提交也查不到。步骤2、事务b 执行更新后提交,此时数据库真实数据已经是990。b事务查询到的第一行数据的 balance还是1000。步骤1、事务a先查询。......原创 2022-08-01 16:28:21 · 440 阅读 · 0 评论 -
查询某作者前7(N)天内每一天的点赞数量
查询某作者前7天内每一天的点赞数量select date_format(article_like.create_time,'%Y%m%d') as everyDay, count(1) as count from article_like where user_id=1 group by everyDayhaving everyDay>=CURRENT_DATE-7article_like表数据查询结果...原创 2022-04-08 13:16:11 · 577 阅读 · 0 评论 -
效率count(*)=count(1)>count(id)>count(字段)(基于 innodb)
以下内容基于常用的 innodb 存储引擎执行效率 count(*)=count(1)>count(id)>count(字段)count() 是一个聚合函数,函数的参数不仅可以是字段名,也可以是其他任意表达式,该函数作用是统计符合查询条件的记录中,函数指定的参数不为 NULL 的记录有多少个1、count( * )的 * 并不是指数据表的所有列,这个是误解。count( * ) 底层执行时会被转化为 count(0),与 count(1) 执行效果一样。2、count( * )原创 2022-01-06 21:57:50 · 775 阅读 · 0 评论 -
Mysql事务隔离级别
事物的隔离级别1、数据库并发事物中存在的问题最开始没有事务的隔离性,会发生以下4种问题:1、丢失更新:两个线程同时修改一个数据,其中先改好的数据被覆盖了,就是无效了,所以说是丢失更新。2、脏读:线程1修改数据后还未提交,线程2读取了该未提交的数据,最后线程1回滚了,但是线程2并不知道数据被回滚。3、不可重复读:不可重复读是指在对于数据库中的某条数据,一个事务范围内多次查询返回不同的数据值,这是由于在查询间隔,另一个线程事务修改并提交了。不可重复读和脏读的区别是,脏读是某一事务读取了另一个事务未提交原创 2021-07-03 00:10:53 · 1328 阅读 · 1 评论 -
sql索引无效的情况(基于5.7版本)
1、不满足最左前缀法则2、在索引列上做任何操作(计算、函数、类型转换),会导致索引失效而转向全表扫描3、存储引擎不能使用索引中范围条件右边的列EXPLAIN SELECT * FROM employees WHERE name= ‘LiLei’ AND age > 22 AND position =‘manager’;4、尽量使用覆盖索引(只访问索引的查询(索引列包含查询列)),减少select *语句5、mysql在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描6原创 2021-05-30 17:30:33 · 1002 阅读 · 1 评论 -
InnoDB和MyISAM索引区别
1、InnoDB索引是聚集(也叫聚簇)索引1)表数据文件本身就是按照B+Tree组织的一个索引文件2)聚集索引:叶子节点包含数据行的整行完整信息。(索引和数据在同一个文件里)主键索引的数据结构图为什么InnoDB表必须有主键,并且推荐使用整形的自增主键?1、必须有主键:因为没有主键就组织不起来B+树,也就不能形成文件保存下来,就算你平时不加主键也可以建表成功,是因为它底层帮我们找了一个唯一的列数据做主键,如果找不到唯一的,就帮我们额外建一个字段Rowid的整形数值。2、推荐整形:因为如果原创 2021-05-29 21:14:41 · 425 阅读 · 0 评论 -
MySQL用B+树(而不是其他数据结构)做索引的原因
B树特点:1、多路排序树2、内部节点也存dataB+树:特点:1、多路排序树2、内部节点不存data,只有叶子节点才存data3、叶子节点左右相连,形成一条有序的双向循环链表为什么MySQL选择B+树做索引1、 B+树的磁盘IO读写次数低:每次读写一个树节点就是一次IO,B+树的内部节点并没有存data,因此盘块所能容纳的关键字数量也越多,一次性读入内存的需要查找的关键字也就越多,相对IO读写次数就降低了。2、B+树的查询效率更加稳定:由于内部结点并不是最终指向文件原创 2021-04-06 17:45:53 · 1153 阅读 · 0 评论 -
SQL调优 入门笔记
SQl调优基础1、mysql逻辑分层原理客户用语句查询实际上mysql服务内部分为4层 :连接层 、服务层、 引擎层、 存储层mysql内部分层表:2、存储引擎主要的引擎 :InnoDB(默认):事务优先 (适合高并发操作;行锁)MyISAM :性能优先 (表锁)1)查询数据库引擎: 支持哪些引擎?:show engines;2)查看当前使用的引擎 :show variables like ‘%storage_engine%’ ;3)指定数据库对象的引擎:create ta原创 2021-01-10 20:41:33 · 427 阅读 · 0 评论 -
服务器mysql用root角色连不上
服务器mysql用root角色连不上1、跳转到自己对应的mysql 的bin目录下,并输入密码,下面是我的路径[root@VM-4-9-centos ~]# cd /www/server/mysql/bin[root@VM-4-9-centos bin]# sudo mysql -uroot -pEnter password:2 、系统本身就有mysql这个库3、查用户表发现系统默认root只能用 loclahost 连接,需要修改访问范围mysql> use mysql;Data原创 2020-10-31 13:43:20 · 621 阅读 · 0 评论 -
mysql中文插入异常解决方法
#@ linux 下的mysql 插入中文异常,但是英文就ok.1)输入:insrt into t_user values(‘小马’,1,‘聪明’);报错:ERROR 1366 (HY000): Incorrect string value: ‘\xE5\xB0\x8F\xE9\xA9\xAC’ for column ‘user_name’ at row 12)输入:insrt into...原创 2020-01-10 22:46:38 · 426 阅读 · 0 评论
分享