首页 > 数据库 >数据库基础知识

数据库基础知识

时间:2022-10-10 08:22:15浏览次数:54  
标签:数据库 基础知识 索引 引擎 MySQL 权限 主键

为什么要使用数据库

  • 数据保存在内存
    优点: 存取速度快
    缺点: 数据不能永久保

  • 数据保存在文件
    优点: 数据永久保存
    缺点:1)速度比内存操作慢,频繁的IO操作。2)查询数据不方便

什么是SQL?

结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询语
言。
作用:用于存取数据、查询、更新和管理关系数据库系统。

什么是MySQL?

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于
Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应
用方面,MySQL是最好的 RDBMS (Relational Database Management
System,关系数据库管理系统) 应用软件之一。在Java企业级开发中非常常
用,因为 MySQL 是开源免费的,并且方便扩展。

数据库三大范式是什么?

第一范式:每个列都不可以再拆分。
第二范式:在第一方式的基础上,非主键列完事依赖于主键,而不能依赖主键的一部分。
第三范式:在第二范式的基础上,非主键列只依赖主键,不依赖与其他非主键。
在设计数据库结构的时候,需要尽量遵守三范式

mysql有关权限的表都有哪几个?

MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数
据库里,由mysql_install_db脚本初始化。这些权限表分别user,db,
table_priv,columns_priv和host。这些表的结构和内容。

  • user权限表:记录允许连接到服务器的账号信息,里面的权限是全局级的。
  • db权限表:记录各个账号在各个数据库上的操作权限。
  • table_priv权限表:记录数据表级的操作去权限。
  • columns_priv权限表:记录数据列级的操作权限。
  • host权限表:配合db权限表对给定主机上数据库级操作权限作更细致的控制。这个表不受GRANT和REVOKE语句的影响。

MySQL的binlog有几种录入格式?分别有什么区别?

有三种格式,statement,row和mixed

  • statedment模式下,每一条会修改数据的sql都会记录在binlog中。不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高了性能,由于sql的执行是有上下文的,因此在保存的时候需要保存相关的信息,同时还有一些使用了函数之类的语句无法被记录复制。
  • row级别下,不记录sql语句上下文相关信息,仅保存哪条记录被修改。记录单元为每一行的改动比如(lalter table),因此这种模式的文件保存的信息太多了,日志量太大。
  • mixed,一种折中的方案,普通操作使用statement记录,当无法使用statement的时候使用row

MySQL存储引擎与MylSAM与InnoDB区别

存储引擎Storage engine:MySQL中的数据,索引以及其他对象是如何存储的,是一套文件系统的实现。
常见的存储引擎有以下:

  • Innodb引擎:Innodb提供了对数据库ACID事务的支持。并且还提供了行级锁和外键的约束。它设计的目标就是处理大量数据容量的数据库系统。
  • MyLASM引擎(原本Mysql的默认引擎):不提供事务的支持,但也不支持行级锁和外键。
  • MEMORY引擎:所有的数据都在内存中,数据的处理速度快,但是安全性不高就。

MyLSAM索引与InnoDB索引的区别?

  • InnoDB索引是聚簇索引,MyLSAM索引是非聚簇索引。
  • InnoDB的主键索引的叶子节点存储着行数据,因此主键索引非常高效。
  • MyLSAM索引的叶子节点存储的行数据地址,需要再寻址一次才能得到数据。
  • InnoDB非主键索引的叶子节点存储的是主键和其他索引的列数据,因此查询时做到覆盖索引会非常高效。
    InnoDB引擎的4大特性
  • 插入缓存(insert buffer)
  • 二次写(doublewrite)
  • 自适应哈希索引(ahi)
  • 预读(read ahead)

存储引擎选择:

如果没有特别要求,使用默认的Innode即可
MyLSAM:以读写插入为主的应用程序,比如博客系统、新文门户网站。
Innodb:更新(删除)操作频率也高,或者要保证数据的完整性;并发量高,支持事务和外键,比如OA自动化办公系统。

标签:数据库,基础知识,索引,引擎,MySQL,权限,主键
From: https://www.cnblogs.com/doubleconquer/p/16774005.html

相关文章

  • 传输数据库/导入导出数据库
    您可以使用完整的可传输 export/import功能将整个数据库从一个Oracle数据库实例复制到另一个实例。为Oracle数据库迁移数据的导出/导入优势使用导出/导入升级Orac......
  • 关于数据库经常自动关闭,并且单击打不开的问题作解释和解决
    解答我经常会遇到这个问题,就是数据库经常在第一次关机后无法打开,需要重启电脑才能够正常使用,我个人认为是超级麻烦!这次,我通过查找相关问题,终于找到了解决方法,让我们一起......
  • 再学·Oracle-数据库-04
    PLSQL编程:procedure Language 过程语言   PLSQL编程是Oracle对sql的一个扩展,让我们可以像在java 中 写 if else  else if,还可以写相应的循环逻辑。  语......
  • 04@数据库库的相关操作及数据库存储引擎详述
    文章目录​​数据库库的相关操作​​​​一、库的相关操作​​​​1、系统数据库​​​​2、创建数据库​​​​3、数据库相关操作​​​​二、存储引擎​​​​1、存储引......
  • Oracle 数据库升级过程中的主要步骤
    Oracle数据库升级包括六个主要步骤。Oracle数据库的升级步骤工作流   步骤1:准备升级Oracle数据库熟悉Oracle数据库新版本的特性。确定新版本的升级路......
  • 函数相关基础知识
    昨日内容回顾文档的打开方式open()withopen()asf文档的读写模式r(只读)w(只写)a(追加写)文档的操作模式t(文本模式)b(二进制模式)文......
  • Java封装、继承、多态、抽象、接口基础知识
    Java封装、继承、多态、抽象、接口基础知识封装面向对象三大特性:封装、继承、多态(四大特性则多一个抽象)定义把对象的属性和方法结合为一个独立的整体,并尽可能隐藏对......
  • 【SQLServer】数据库自动收缩
    使用SSMS开启数据库自动收缩功能: 使用SQL命令开启数据库自动收缩功能:--EnableAutoShrinkforthedatabaseABCEALTERDATABASEABCESETAUTO_SHRINKONGO--Di......
  • @mysql数据库面试手册
    面试手册1、你接触过哪几种数据库软件,各自的优缺点是什么?2、MySQLbinlog的几种日志格式有什么区别?3、MySQL的存储引擎有哪几种?4、MySQL主从复制原理是什么?5、MySQL中myisam......
  • @mysql数据库读写分离
    文章目录​​一、主库切换优先级​​​​1.数据量切换测试​​​​2.优先级切换测试​​​​3.如果断电或者断网,binlog如何保存?​​​​二、VIP漂移​​​​1.VIP漂移的两......