【数据库】
依本多情
欲戴王冠必承其重
展开
-
如何对SQL进行优化查询之使用explain关键字进行分析?
(一)通过关键字explain的分析我们可以得出什么结果?表的读取顺序表的读取操作的读取类型哪些索引有可能会被使用到哪些索引被实际使用了表之间的引用每张表有多少行被优化器查询(二)大体来看每个字段都代表什么含义?id: 可以用来看出来先执行的顺序,也就是当id值越大,就越先被MySQL执行,如果id相同的话 可以认为是同一组,按照从上到下顺序执行select_type: 能...原创 2018-10-02 16:25:39 · 994 阅读 · 0 评论 -
如何防止建立的索引失效?
(一)在使用索引的时候,需要注意的几个地方来防止索引的失效当你使用索引的时候,最好能够把你建立的索引的字段都给用到。不仅可以提供查询的效率最佳左前缀法则,意思就是当你如果有建立过多个字段索引的组合索引的时候,最要遵循最左前缀法则,就是指当MySQL在使用索引查询的时候不会跳过中间已经建立好的索引列不能在索引列上做任何操作(比如使用函数、计算、类型转换),这样也会导致索引失效然后进行全表扫描...原创 2018-10-03 15:21:01 · 1494 阅读 · 0 评论 -
如何理解数据库MySQL的表级锁、行级锁、页锁问题?
从锁的粒度进行对数据库进行划分等级表级锁行级锁页级锁(这个不常用)(1)MySQL的表级锁两种模式:1. 表级共享读锁(共享锁):也就是在MyISAM引擎下,如果对一个表加了读锁的话,那么这个表(user表吧)当前的A线程可以进行读,但是不能对user表进行写操作,如果又有一个B线程想要去读取user表的时候,此时也是可以读取user表的,但是不能对user表进行写操作,会对B线程...原创 2018-10-05 14:51:45 · 1428 阅读 · 1 评论 -
如何理解MySQL的底层中数据结构索引MyISAM和InnoDB的区别?
(一)先对MyISAM和InnoDB有一个简单的对比认识1. MyIsam是非聚集索引(其实MyIsam引擎就是索引和数据分离的索引单独放在一个XX.MYI文件中,数据单独放在一个XX.MYD文件中),InnoDB就是聚集索引(其实就是他的数据和索引就是在一个XX.IDB文件中),或者说MyIsam他寻找索引的时候可以直接定位到索引就可以拿到数据,但是InnoDB就不行,他只能去BTree的叶子...原创 2018-09-27 18:26:53 · 1391 阅读 · 0 评论 -
面试必备的经典SQL语句大全
练习SQL语句大全(关键看思路)该数据有三张表:部门表dept(deptno部门编号、dname部门名称、loc位置)、员工表emp(empno工号、ename员工姓名、job职位、mgr直属领导工号、hiredate入职日期、sal月薪、comm补贴、deptno部门编号)、薪水等级表salgrade(grade等级、losal区间下限、hisal区间上限)1、 取得每个部门最高薪水人...原创 2018-10-15 21:36:14 · 15713 阅读 · 6 评论 -
为什么MySQL使用B+而不是使用B树、二叉树、AVL树呢?(来龙去脉的去理解)
当你回答使用B+ 怎么怎么好的时候,其实这道面试题你就注定答不满分了,你应该是从一步步如果演变到使用B+来做MySQL的数据结构,下面就一步一步从二叉树——>AVL(平衡二叉树)——>B Tree(多路平衡查找树)——>B+ Tree的一个演变的过程来进行分析,为什么使用B+ Tree的?(1)先从二叉树开始说起:首先你得知道二叉树是什么吧:看下面的图一你就该很熟悉了吧然...原创 2019-06-30 17:42:10 · 6577 阅读 · 15 评论