MySQL学习
文章平均质量分 94
xwj1992930
https://github.com/xwj920930
展开
-
SQL相关
关于join on后面使用and时的情况,例如a left join b on a.id=b.id,会将左边表的列全部显示,如果添加a left join b on a.id=b.id and b.bonus原创 2023-06-29 10:34:51 · 1364 阅读 · 0 评论 -
MySQL全局优化与Mysql8.0新增特性
从上图可以看出SQL及索引的优化效果是最好的,而且成本最低,所以工作中我们要在这块花更多时间。CPU:32核内存:64G下面参数都是服务端参数,默认在配置文件的 [mysqld] 标签下连接的创建和销毁都需要系统资源,比如内存、文件句柄,业务说的支持多少并发,指的是每秒请求数,也就是QPS。一个连接最少占用内存是256K,最大是64M,如果一个连接的请求数据超过64MB(比如排序),就会申请临时空间,放到硬盘上。如果3000个用户同时连上mysql,最小需要内存3000。原创 2023-09-22 10:29:00 · 130 阅读 · 0 评论 -
Innodb底层原理与Mysql日志机制
设置为2:表示每次事务提交时都只是把 redo log 写到操作系统的缓存page cache里,这种情况如果数据库宕机是不会丢失数据的,但是操作系统如果宕机了,page cache里的数据还没来得及写入磁盘文件的话就 会丢失数据。对于设置2,InnoDB 有一个后台线程,每隔 1 秒,就会把 redo log buffer 中的日志,调用操作系统函数 write 写到文件系统的page cache,然后调用操作系统函数 fsync 持久化到磁盘文件。存储引擎层负责数据的存储和提取。原创 2023-09-21 17:06:30 · 261 阅读 · 0 评论 -
MySQL索引,Explain,事务,锁与MVCC
对于联合索引(a,b,c),使用like的时候(a like ‘a%’ and b=‘b’ and c=‘c’),按理来说like截取以后的字段所对应的后续索引顺序(b,c)已经无法保证,但是MySQL会做出优化,查询到like不会立即回表,而是把后续的字段匹配再回表,减少了回表次数;换一种说法,使用B+树将能存储更多的索引。join的时候,如果外键是索引,实行NLJ算法,流程为将小表数据取出,与大表的索引匹配(大表有索引所以匹配很快),如果小表数据100大表一万,将进行大小表各100次磁盘扫描。原创 2023-09-21 11:20:12 · 76 阅读 · 0 评论