mysql(4)=====理论(索引,视图,存储过程,事务)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

                     mysql 的基本概念


***问题1

什么是数据库?

数据库(database)是一个长期存储在计算机内的有组织,有共享的、统一管理的数据集合。它是一个按数据结构来存储和管理数据的

计算机软件系统。数据库包含两层含义,数据的“仓库”以及管理数据的方法和技术。

将所有的数据收集在一起不能称为数据库,只有具有利用信息的功能时才能称为数据库。


***问题2

数据库的特点?

实现数据共享,减少数据冗余;采用特定的数据类型;具有较高的数据独立性;具有统一的数据控制功能。


***问题3

什么是关系型数据库?

关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。


***问题4

常见的关系型数据库?

Oracle、SQL Server、Sybase、DB2、Access 、mysql

非关系型数据库的一个链接

http://blog.csdn.net/qq_22101509/article/details/49794303


***问题5

数据库系统的组成?

数据库:用于存储数据的地方

数据库管理系统:用于存储数据库的软件

数据库应用程序:为提高数据库系统的处理能力所使用的管理数据库的软件补充

数据库不等于数据库管理系统,数据库只是一个具有能够 提供提取信息的一个地方,而真正的增删改查是由数据库管理系统来完成的(DBMS)


***问题6

sql语言可分为哪几部分?

数据定义语言(DDL):drop  create alter

数据操作语言(DML):insert   delete  update  select

数据控制语言(DCL):grant revoke commit rollback


***问题7

mysql的优势?

考虑方向:速度、价格、支持不同的系统(windows linux unix Mac os)、支持查询的语言(sql 语句)、丰富的接口(php c c++ python ......)

开源


***问题8

什么是索引?

索引是一个单独的、存储在磁盘上的数据库结构,它们包含着对数据表里所有记录的引用指针。


***问题9

索引的分类?

普通索引和唯一索引

单列索引和组合索引

全文索引

空间索引


***问题10

查询表中使用的存储引擎

mysql> show create table score;

+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| Table | Create Table                                                                                                                                                                                                                              |

+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| score | CREATE TABLE `score` (

  `id` int(10) NOT NULL,

  `stu_id` int(10) DEFAULT NULL,

  `c_name` varchar(20) DEFAULT NULL,

  `grade` int(10) DEFAULT NULL,

  PRIMARY KEY (`id`),

  UNIQUE KEY `id` (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

+-------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

1 row in set (0.16 sec)


  索引的优点?索引的缺点?

优点:方便查询

缺点:太多的索引也占用磁盘空间


  索引的设计原则?

索引并非越多越好。

避免对经常更新的表进行过多的索引,并且索引中的列尽可能少。

数据量小的表最好不要使用索引。

在条件表达式中经常用到的不同值较多的列上建立检索,在不同值少的列上不要建立索引。

当唯一性是某种数据本身的特征时,指定唯一索引。

在频繁进行排序或分组(即进行group by或order by操作)的列上建立索引


***问题11

什么是存储过程?

SEQ语言是非程序语言

程序语言指为达到某个目的,将处理流程通过多个命令来编写。而非程序语言是不能编写流程的。

定义:将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。 

简单说就是数据库中保存一系列sql命令的集合

查询的工作原理

所有查询在执行前都需要经过解释,解析,优化,编译和执行

解释:检查语句的语法是否正确

解析:检查语句中出现的对象名是否有效,同时检查对象的所有权限

优化:检查是否能够使用索引并决定联合策略

编译:把查询翻译成一个可执行的表

执行:把编译过程的查询要求提交并进行处理

存储过程的优势?

存储过程是事先完成了解析、编译存储在数据库中的,执行时能减轻数据库负担,提高执行性能



***问题12

什么是视图?

视图是一个虚拟表,是从数据库中一个或多个表中导出来的表。视图还可以从已经存在的视图的基础上定义。

视图的作用?

● 简单性

● 安全性

● 逻辑数据独立性


***问题13

事务的理解?


事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。 

事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消撤消之前到事务开始时的所以操作。 

二.事务的 ACID 

事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )。这四个特性简称为 ACID 特性。 

1 、原子性 

事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做 

2 、一致性 

事 务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统 运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是 不一致的状态。 

3 、隔离性 

一个事务的执行不能其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。 

4 、持续性 

也称永久性,指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的。接下来的其它操作或故障不应该对其执行结果有任何影响。 


数据库系统必须维护事务的以下特性 ( 简称 ACID) : 


原子性 (Atomicity) 


一致性 (Consistency) 


隔离性 (Isolation) 


持久性 (Durability) 


原子性 (Atomicity) 


事务中的所有操作要么全部执行,要么都不执行; 


如果事务没有原子性的保证,那么在发生系统 故障的情况下,数据库就有可能处于不一致状态



本文转自 大雪儿 51CTO博客,原文链接:http://blog.51cto.com/dingxue/1973682,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
265
分享
相关文章
java调用mysql存储过程
在 Java 中调用 MySQL 存储过程主要借助 JDBC(Java Database Connectivity)。其核心原理是通过 JDBC 与 MySQL 建立连接,调用存储过程并处理结果。具体步骤包括:加载 JDBC 驱动、建立数据库连接、创建 CallableStatement 对象、设置存储过程参数并执行调用。此过程实现了 Java 程序与 MySQL 数据库的高效交互。
MySQL索引学习笔记
本文深入探讨了MySQL数据库中慢查询分析的关键概念和技术手段。
310 80
MySQL底层概述—8.JOIN排序索引优化
本文主要介绍了MySQL中几种关键的优化技术和概念,包括Join算法原理、IN和EXISTS函数的使用场景、索引排序与额外排序(Using filesort)的区别及优化方法、以及单表和多表查询的索引优化策略。
MySQL底层概述—8.JOIN排序索引优化
MySQL原理简介—9.MySQL索引原理
本文详细介绍了MySQL索引的设计与使用原则,涵盖磁盘数据页的存储结构、页分裂机制、主键索引设计及查询过程、聚簇索引和二级索引的原理、B+树索引的维护、联合索引的使用规则、SQL排序和分组时如何利用索引、回表查询对性能的影响以及索引覆盖的概念。此外还讨论了索引设计的案例,包括如何处理where筛选和order by排序之间的冲突、低基数字段的处理方式、范围查询字段的位置安排,以及通过辅助索引来优化特定查询场景。总结了设计索引的原则,如尽量包含where、order by、group by中的字段,选择离散度高的字段作为索引,限制索引数量,并针对频繁查询的低基数字段进行特殊处理等。
MySQL原理简介—9.MySQL索引原理
MySQL底层概述—6.索引原理
本文详细回顾了:索引原理、二叉查找树、平衡二叉树(AVL树)、红黑树、B-Tree、B+Tree、Hash索引、聚簇索引与非聚簇索引。
MySQL底层概述—6.索引原理
MySQL秘籍之索引与查询优化实战指南
最左前缀原则。不冗余原则。最大选择性原则。所谓前缀索引,说白了就是对文本的前几个字符建立索引(具体是几个字符在建立索引时去指定),比如以产品名称的前 10 位来建索引,这样建立起来的索引更小,查询效率更快!
128 22
 MySQL秘籍之索引与查询优化实战指南
浅入浅出——MySQL索引
本文介绍了数据库索引的概念和各种索引结构,如哈希表、B+树、InnoDB引擎的索引运作原理等。还分享了覆盖索引、联合索引、最左前缀原则等优化技巧,以及如何避免索引误用,提高数据库性能。
MySQL进阶突击系列(05)突击MVCC核心原理 | 左右护法ReadView视图和undoLog版本链强强联合
2024年小结:感谢阿里云开发者社区每月的分享交流活动,支持持续学习和进步。过去五个月投稿29篇,其中17篇获高分认可。本文详细介绍了MySQL InnoDB存储引擎的MVCC机制,包括数据版本链、readView视图及解决脏读、不可重复读、幻读问题的demo演示。
[MySQL]存储过程
本文介绍了存储过程的概念、优点和缺点,并通过具体示例详细讲解了存储过程的创建、使用和调用方法。此外,还介绍了游标的定义和使用,帮助读者更好地理解和应用存储过程。文章旨在为读者提供一个学习和使用存储过程的实用指南。
448 18
[MySQL]存储过程
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等