
mysql
文章平均质量分 79
Aki--
这个作者很懒,什么都没留下…
展开
-
mysql中redolog和binlog的总结
一.redolog1.redo log的概念redolog是物理日志,默认大小是4G,记录在某个数据页上做了什么修改。有了 redo log,InnoDB 就可以保证即使数据库发生异常重启,之前提交的记录都不会丢失,这个能力称为 crash-safe。因为redo log 的写入机制是事务中有更新操作时就会将更新操作记录在 redo log buffer 中,在事务提交时,根据相关参数的设定,按照不同逻辑持久化到磁盘文件2.redo log写入文件的过程简介redo日志从生成到写入文件要原创 2021-12-31 18:25:06 · 2518 阅读 · 0 评论 -
19.执行单条记录查询慢的原因
先补充几条指令①可以用 show processlist查看连接状态show processlist②可以用lock table 表名 WRITE/READ 来模拟指定加读锁还是写锁,用unlock tables来是释放锁③查看占有锁的pidSELECT blocking_pid FROM sys.schema_table_lock_waits只查询一行语句,但是却很慢的原因(CPU占用率高,IO占用率高都不在这次的讨论范围内)一.查询查询长.原创 2021-12-06 02:25:19 · 214 阅读 · 0 评论 -
18.mysql索引失效的部分原因
1.对索引字段做函数操作,可能会破坏索引值的有序性优化器会决定放弃走树搜索功能。(即便逻辑大致相同),比如时间time本来是‘2018-7-1’ (datetime的类型),此时你用了month(time)=7,导致优化器不知道怎么走(看索引树就知道了,破坏了索引树同级节点的有序性)mysql优化器处理比如 select * from tradelog where id+ 1 = 10000 的时候会偷懒不走索引,即便这种条件写法不会破坏有序性,要手动改写成 where id =原创 2021-12-06 00:49:46 · 228 阅读 · 0 评论 -
mysql查询相关语法总结
一.查询语句1.基础查询1.查询表中某一字段:select 字段名 from 表名;2.查询表中多个字段:select 字段名,字段名 from 表名; (字段名用逗号隔开) 3.查询表中所有字段: select * from 表名2.进阶查询 select 字段名 from 表名 where 筛选条件;筛选条件大致有如下这些,其中1.<>表示的是不等于2.通配符:① %:表示可以匹配任意多个字符包括0个② _:表示可以匹配的任意一个字符③ \:表示转字字原创 2021-08-04 00:36:06 · 591 阅读 · 0 评论 -
4. 深入浅出索引(上)
本篇文章主要对索引中用到的数据结构做了介绍一.索引的常见模型1.哈希表创建一个数组,数组下标为key,值为value。比如原数据为x,利用哈希函数f(x)得到对应的key再用h[key]得到对应value。但可能遇到x不同但是key相同的冲突情况,如果遇到冲突,就拉一个链表处理大概是下图这样哈希表的缺点:由于哈希表存储的数值是不连续的,没有规律,所以在区间查询上效率很低,比如找id>=5且id<=10的数据,这时候哈希表要把id=[5,10]都放进哈希函数算一遍再查一下判断是否存在这原创 2021-05-20 20:57:09 · 729 阅读 · 0 评论