Mysql索引主要有两种结构:B+Tree索引和Hash索引
索引是在基于数据库表创建的,它包含一个表中某些列的值以及记录对应的
地址
Hash索引:Memory表的默认索引类型但是因为hash结构,每个键只对应一个值,而且是散列的方式分布。所以它并不支持范围查找和排序等功能。
B+Tree索引B+Tree在查找单条记录的速度比不上Hash索引,但是因为更适合排序等操作。18到49的所有数据记录,当找到18后,只要顺着节点和指针顺序遍历就可以以此向访问到所有数据节点,极大提高了区间查询效率。
B+树:有序数组链表+平衡多叉树,B+树的关键字全部存放在叶子节点中,非叶子节点用来做索引1,INDEX(普通索引):ALTER TABLE
‘table_name’ ADD INDEX index_name(‘col’)最基本的索引,没有任何限制 2,UNIQUE(唯一索引):ALTER TABLE ‘table_name’ ADD UNIQUE(‘col’)与“普通索引”类似,不同的就是:索引列的值必须唯一,但允许有空值。 3,PRIMARY KEY(主键索引):ALTER TABLE ‘table_name’ ADD PRIMARY KEY(‘col’),全文索引
左连接select * from a_table a left join b_table b on a.a_id = b.b_id;
关键字:left join on,左表全显示,右表筛选
右连接:select * from a_table a right outer join b_table b on a.a_id = b.b_id;
关键字:right join on,右表权限是,坐标筛选
悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作,乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。
开始->FROM子句->WHERE子句->GROUP BY子句->HAVING子句->ORDER BY子句->SELECT子句->LIMIT子句->最终结果
范式第一:不可分割,不可重复属性,第二:主键:唯一可区分,第三:外键
事务:操作集合,不可分割,原子性,一致性,隔离性,持久性
mysql分页,limit分页limit offset,size索引多少叶
SQL语句,查询全班每门课程的及格率:
数据库事务隔离级别
1.Read uncommitted (读未提交):最低级别,任何情况都无法保证。
2.Read committed (读已提交):可避免脏读的发生。
3.Repeatable read (可重复读):可避免脏读、不可重复读的发生。
4.Serializable (串行化):可避免脏读、不可重复读、幻读的发生。