数据库
玛卡巴卡历险记
这个作者很懒,什么都没留下…
展开
-
如何设计一个关系型数据库
数据库首先可以划分为两个部分:存储部分(类似文件系统,将数据写入其中) + 程序实例(对存储进行逻辑上的处理)。设计一个关系型数据库主要需要考虑如下模块1、存储管理:数据逻辑关系转换为物理存储关系2、缓存机制:优化执行效率3、SQL解析:将SQL语句进行解析4、日志管理:记录操作5、容灾机制:备份6、权限划分:多用户管理7、索引模块:提高数据查询效率8、锁机制:使数据支持并发设计...原创 2019-06-09 17:23:59 · 1679 阅读 · 0 评论 -
数据库索引及其相关问题
一、索引的数据结构数据库索引的数据结构主要有四种1、二叉查找树二叉查找树是对半查找,其时间复杂度为O(logn),但是最坏情况下会变成O(n)(排成线性表时)。2、B树B树出现的原因是为了降低树的深度,减少访问IO次数来优化查询速率。查询速率与二叉查找树一样高效。3、B+树(MySql采用的)B+树是B树的变体,其定义基本与B树相同,除了:a、非叶子节点的字树指针与关键字个数相...原创 2019-06-10 10:02:21 · 187 阅读 · 0 评论 -
数据库之锁模块
锁出现的原因是为了处理并发问题。数据库并发需要使用事务来控制,事务并发问题需要数据库锁来控制,所以数据库锁是跟并发控制和事务联系在一起的。 平时会经常看到或者听到数据库锁有“共享锁”,“排它锁”,“互斥锁”,“写锁”,“读锁”,“悲观锁”,“乐观锁”,“行级锁”,“表级锁”,“页级锁”等,同时我们还会常看到“丢失修改“,”不可重复读“,”读脏数据“这三个术语,下面开始介绍:一、事务事务是数据...原创 2019-06-10 10:58:20 · 160 阅读 · 0 评论 -
SQL语法
假设现在有三张表:student 表含有 student_id(主键), name, age, sex.。score表 student_id(主键), course_id, score。course 表 course_id(主键), name。在同一个Sql语句中,where> group by > having 出...原创 2019-06-10 13:42:42 · 535 阅读 · 0 评论