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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 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,如需转载请自行联系原作者

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
缓存 关系型数据库 MySQL
MySQL索引策略与查询性能调优实战
在实际应用中,需要根据具体的业务需求和查询模式,综合运用索引策略和查询性能调优方法,不断地测试和优化,以提高MySQL数据库的查询性能。
|
29天前
|
存储 关系型数据库 MySQL
阿里面试:为什么要索引?什么是MySQL索引?底层结构是什么?
尼恩是一位资深架构师,他在自己的读者交流群中分享了关于MySQL索引的重要知识点。索引是帮助MySQL高效获取数据的数据结构,主要作用包括显著提升查询速度、降低磁盘I/O次数、优化排序与分组操作以及提升复杂查询的性能。MySQL支持多种索引类型,如主键索引、唯一索引、普通索引、全文索引和空间数据索引。索引的底层数据结构主要是B+树,它能够有效支持范围查询和顺序遍历,同时保持高效的插入、删除和查找性能。尼恩还强调了索引的优缺点,并提供了多个面试题及其解答,帮助读者在面试中脱颖而出。相关资料可在公众号【技术自由圈】获取。
|
20天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
96 1
|
21天前
|
存储 SQL NoSQL
|
1月前
|
存储 关系型数据库 MySQL
如何在MySQL中进行索引的创建和管理?
【10月更文挑战第16天】如何在MySQL中进行索引的创建和管理?
63 1
|
21天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
49 0
|
1月前
|
监控 关系型数据库 MySQL
mysql8索引优化
综上所述,深入理解和有效实施这些索引优化策略,是解锁MySQL 8.0数据库高性能查询的关键。
36 0
|
1月前
|
存储 SQL 关系型数据库
MySql数据库---存储过程
MySql数据库---存储过程
35 5
|
1月前
|
存储 关系型数据库 MySQL
MySQL 存储过程返回更新前记录
MySQL 存储过程返回更新前记录
54 3
|
1月前
|
存储 SQL 关系型数据库
MySQL 存储过程错误信息不打印在控制台
MySQL 存储过程错误信息不打印在控制台
61 1
下一篇
无影云桌面