学习Java需要知道的数据库中的相关知识

关于数据库中的外键约束

约束指的是数据库的一种管理方式,使得数据库中的数据是有意义的。约束是由DBA去设置的,开发人员只需要知道其含义即可。

  1. 非空约束(not null):要求管理的字段不能存储null值;

  2. 唯一性约束(unique):要求管理的字段存储值不能有重复,但是可以存储null值

  3. 主键约束:管理主键字段(key),要求主键字段内容不能为null,同时也不能出现重复值

  4. 外键约束(foreign key):管理外键字段,要求外键字段的值应该来自于关联的一方表中主键字段的值,但是可以存储null值。

关于数据库中的索引(index)

查询速度问题:

由于表文件存放数据行随着时间推移,会越来越多。where命令在执行时需要对表文件所有数据进行遍历,所以时间越久,数据行越大,where命令执行时小号时间就会不断增加。

索引 的作用

在表文件数据行增加时,不会大幅度降低查询语句执行效率。

索引的工作原理:事先将字段中内容进行排序,在where命令进行定位时,避免对表中所有的数据进行遍历,这将会提高查询速度。

索引管理:

  • 为表中的某个字段绑定索引:create index 索引名称 on 表名(字段名);

  • 查询表文件关联的索引: show index from 表名

    • 在位表文件绑定key ,unique,foreign key 约束时,mysql服务器自动将当前字段数据进行排序并交给指定的索引去管理。

  • 删除表文件中指定的索引: drop index on 索引名 on 表名;

执行计划(explain)

  1. 命令格式: explain 查询语句;

type显示的就是查询语句使用的查询方式

  1. 作用:

展示当前查询得到的结果是否通过索引来进行定位.DBA通过执行计划了解本次查询过程是否使用了预先创建好的索引。

  1. 执行计划中对于查询语句执行效率的判断:

  • 在执行计划中,通过type属性展示查询语句的执行效率

    • 执行效率的分类:【慢--->快】

      • ALL : where对表中所有的数据进行遍历(对DBA来说,应该极力避免这种查询)

      • type: where对表中所有数据进行遍历,只是在select抓取的字段内容中,从索引中抓取

      • range: where 不会对表中的所有数据进行遍历,而是直接从索引中得到定位的数据行行数

视图

  1. 定义:当前mysql服务器中的一个对象,用于存储sql查询语句,目的是提高查询语句使用效率,避免在多处地方重复性开发相同查询语句。

  2. 相关的命令:

    • 将查询语句交给一个视图对象进行管理:create view 视图对象名 as 查询语句

    • 通过视图对象调用管理查询语句: select * from 试图对象

  3. 视图额外的功能:

    • 通过视图对象对关联表文件进行插入,删除以及更新操作;

  1. 视图的作用:

    • 提高了查询语句的复用性,避免在多出地方重复进行查询语句开发行为

    • 隐藏业务中涉及的表的关系,开发人员通过视图进行操作时不会知道具体操作的表

关于存储引擎

定义:

MySQL服务器对于表文件中内容的一种管理方式。目前MySQL服务器主要采用的是INNODB(安全,有备份,但是操作速度慢),MyISAM(不会对操作的表文件进行备份,速度快,但是不安全)两种存储引擎。

管理命令:

  • 查看MySQL服务器支持存储引擎的种类:

    show engines; (默认INNODB)

  • 修改MySQL服务器默认的存储引擎:

    D:\软件\MySQL\MySQL Server 5.7-----> my.ini文件(MySQL服务器的配置文件)

    default-storage-engine=INNODB ------->修改存储引擎

  • 设置当前表文件所依赖的存储引擎:

    • 显示:show create table 表名;

    • 修改: alter table 表名 engine=存储引擎;

  • MyISAM存储引擎的特征:

    1. 对表文件内容进行修改时,存储引擎不会对表文件进行备份操作,提高操作执行效率,但是在操作完毕后无法取消本次操作

    2. 使用三个文件存储表文件信息

      • 表名.frm 存储文件字段信息

      • 表名.myd 存储文件数据信息

      • 表名.myi 存储表文件中字段所关联的索引信息

  • INNODB存储引擎特征:

    1. 在对表文件内容进行修改时,首先进行一次备份再进行操作,因此执行效率相对较慢。但是执行完毕后,由于有备份存在,可以使用备份取消当前操作,增强了数据的安全性。

    2. 使用一个文件来存储表文件信息:

      表名.frm: 存储表文件字段信息,存储表文件数据行信息,存储表文件中字段所关联的索引信息

关于事务

定义:事务是MySQL服务器所提供的一个管理对象,用于对当前表文件的备份进行管理。

具体使用:

  • start transaction : 通知mysql服务器提供一个事务对象,该对象对接下来的操作中所产生的所有备份进行管理

  • delete from 表名 where 条件; 生成 -----> 表名.bak 备份文件

  • rollback ; 通知MySQL服务器将本次操作中所有的备份信息覆盖到表文件,来取消本次操作

  • commit; 通知MySQL服务器将本次操作中生成的所有备份信息进行删除,称之为提交操作

posted @ 2021-10-08 09:35  安妍  阅读(41)  评论(0编辑  收藏  举报