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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 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,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
MySQL锁机制:并发控制与事务隔离
本文深入解析了MySQL的锁机制与事务隔离级别,涵盖锁类型、兼容性、死锁处理及性能优化策略,助你掌握高并发场景下的数据库并发控制核心技巧。
|
3月前
|
存储 监控 Oracle
MySQL事务
MySQL事务具有ACID特性,包括原子性、一致性、隔离性和持久性。其默认隔离级别为可重复读,通过MVCC和间隙锁解决幻读问题,确保事务间数据的一致性和并发性。
MySQL事务
|
4月前
|
存储 SQL 关系型数据库
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
|
4月前
|
存储 关系型数据库 MySQL
MySQL数据库索引的数据结构?
MySQL中默认使用B+tree索引,它是一种多路平衡搜索树,具有树高较低、检索速度快的特点。所有数据存储在叶子节点,非叶子节点仅作索引,且叶子节点形成双向链表,便于区间查询。
179 4
|
1月前
|
关系型数据库 MySQL 数据库
【赵渝强老师】MySQL的事务隔离级别
数据库并发访问时易引发数据不一致问题。如客户端读取到未提交的事务数据,可能导致“脏读”。MySQL通过四种事务隔离级别(读未提交、读已提交、可重复读、可序列化)控制并发行为,默认为“可重复读”,以平衡性能与数据一致性。
243 0
|
2月前
|
关系型数据库 MySQL 数据库
MySql事务以及事务的四大特性
事务是数据库操作的基本单元,具有ACID四大特性:原子性、一致性、隔离性、持久性。它确保数据的正确性与完整性。并发事务可能引发脏读、不可重复读、幻读等问题,数据库通过不同隔离级别(如读未提交、读已提交、可重复读、串行化)加以解决。MySQL默认使用可重复读级别。高隔离级别虽能更好处理并发问题,但会降低性能。
135 0
|
4月前
|
存储 SQL 关系型数据库
MySQL 核心知识与索引优化全解析
本文系统梳理了 MySQL 的核心知识与索引优化策略。在基础概念部分,阐述了 char 与 varchar 在存储方式和性能上的差异,以及事务的 ACID 特性、并发事务问题及对应的隔离级别(MySQL 默认 REPEATABLE READ)。 索引基础部分,详解了 InnoDB 默认的 B+tree 索引结构(多路平衡树、叶子节点存数据、双向链表支持区间查询),区分了聚簇索引(数据与索引共存,唯一)和二级索引(数据与索引分离,多个),解释了回表查询的概念及优化方法,并分析了 B+tree 作为索引结构的优势(树高低、效率稳、支持区间查询)。 索引优化部分,列出了索引创建的六大原则
134 2
|
4月前
|
安全 关系型数据库 MySQL
mysql事务隔离级别
事务隔离级别用于解决脏读、不可重复读和幻读问题。不同级别在安全与性能间权衡,如SERIALIZABLE最安全但性能差,READ_UNCOMMITTED性能高但易导致数据不一致。了解各级别特性有助于合理选择以平衡并发性与数据一致性需求。
180 1
|
2月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
133 3
|
2月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。

推荐镜像

更多