MySql视图,索引

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

视图

什么是视图, 视图是从一个或几个基本表(或视图)中导出的虚表,数据库中只存放了视图的定义,不存放视图对应的数据。

它是原始数据库数据的一种变换,是查看表中数据的另外—种方式。可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据。视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生视图的表叫做该视图的基表。一个视图也可以从另一个视图中产生。

视图的特点体现在三个方面:

1.简单性,看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化对它们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件;

2.安全性,通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到;

3.逻辑数据独立性,视图可帮助用户屏蔽真实表结构变化带来的影响;根据视图的特点可以达到以下的几点作用:

  1简化数据查询语句;

      2使用户从多角度看待同一数据;

      3提高数据安全性;

      4提供了一定程度的逻辑独立性。

语法:创建视图SQL语句格式:

CREATE VIEW view_name AS
SELECT column1, column2, ...
FROM table_name
WHERE condition;

更新Mysql数据:

UPDATE view_name SET column1 = value1 WHERE condition;
INSERT INTO view_name (column1, column2, ...) VALUES (value1, value2, ...);
DELETE FROM view_name WHERE condition;

修改视图的定义方法:

ALTER VIEW view_name AS
SELECT column1, column2, ...
FROM table1
WHERE condition;

删除视图:

DROP VIEW view_name;

索引

什么是索引

索引就是根据表中的一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表,实质上是一张描述索引列的列值与原表中记录行之间一 一对应关系的有序表。

索引是 MySQL 中十分重要的数据库对象,是数据库性能调优技术的基础,常用于实现数据的快速检索。


在 MySQL 中,通常有以下两种方式访问数据库表的行数据:


1.顺序访问


顺序访问是在表中实行全表扫描,从头到尾逐行遍历,直到在无序的行数据中找到符合条件的目标数据。


顺序访问实现比较简单,但是当表中有大量数据的时候,效率非常低下。例如,在几千万条数据中查找少量的数据时,使用顺序访问方式将会遍历所有的数据,花费大量的时间,显然会影响数据库的处理性能。


2.索引访问


索引访问是通过遍历索引来直接访问表中记录行的方式。


使用这种方式的前提是对表建立一个索引,在列上创建了索引之后,查找数据时可以直接根据该列上的索引找到对应记录行的位置,从而快捷地查找到数据。索引存储了指定列数据值的指针,根据指定的排序顺序对这些指针排序


我们为什么要用索引:


优点:

索引的优点如下:


1. 通过创建唯一索引可以保证数据库表中每一行数据的唯一性。


2. 可以给所有的 MySQL 列类型设置索引。


3. 可以大大加快数据的查询速度,这是使用索引最主要的原因。


4. 在实现数据的参考完整性方面可以加速表与表之间的连接。


5. 在使用分组和排序子句进行数据查询时也可以显著减少查询中分组和排序的时间


缺点:

1. 创建和维护索引组要耗费时间,并且随着数据量的增加所耗费的时间也会增加。


2. 索引需要占磁盘空间,除了数据表占数据空间以外,每一个索引还要占一定的物理空间。如果有大量的索引,索引文件可能比数据文件更快达到最大文件尺寸。


3. 当对表中的数据进行增加、删除和修改的时候,索引也要动态维护,这样就降低了数据的维护速度。

索引分类

MySQL索引分为普通索引、唯一索引、主键索引、组合索引、全文索引。索引不会包含有n

 

  1. 组合索引:指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循最左前缀集合;
  2.  主键索引:是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值;使用id查询:
  3. 唯一索引:与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一;
  4. 普通索引:是最基本的索引,它没有任何限制;

索引的语法

1.创建索引

CREATE [UNIQUE|FULLTEXT] INDEX 索引名 ON 表名(字段名(长度))

2.修改索引

ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT] INDEX 索引名(字段名(长度))

3.删除索引

DROP INDEX 索引名 ON 表名

数据库的备份与恢复:

1.使用mysqldump导入导出

D导出命令

:\SoftwareInstallPath\mysql-8.0.13-winx64\bin>mysqldump -uroot

-p123456 mybatis_ssm > 1234567.sql

导入

注意:首先建立空数据库

– mysql>create database abc;

– 2.2.1 方法一

– mysql>use abc; #选择数据库

– mysql>set names utf8; #设置数据库编码

– mysql>source /D:/SoftwareInstallPath/mysql-8.0.13-winx64/bin/1234567.sql; #导入数据

LOAD DATA INFILE:

是MySQL中用于将数据从文本文件导入到数据库表中的语句。它允许快速导入大量数据,并且比逐行插入数据更高效。

以下是LOAD DATA INFILE语句的基本

语法:

LOAD DATA INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE table_name
[CHARACTER SET charset_name]
[FIELDS
    [TERMINATED BY 'field_terminator']
    [ENCLOSED BY 'enclosure_character']
    [ESCAPED BY 'escape_character']
]
[LINES
    [STARTING BY 'line_prefix']
    [TERMINATED BY 'line_terminator']
]
[IGNORE number LINES]
(column1, column2, column3, ...)

接下来,我将逐个解释这些参数的作用:


file_name:指定要导入的文本文件路径和文件名。


REPLACE和IGNORE:可选参数,在导入过程中控制处理重复数据行的方式。REPLACE会替换已存在的行,而IGNORE会跳过已存在的行,默认情况下是追加数据。


table_name:指定要导入数据的目标表名。


CHARACTER SET charset_name:可选参数,指定文本文件的字符集。


FIELDS子句:用来指定字段的分隔符、引用符和转义符等。


TERMINATED BY ‘field_terminator’:指定字段之间的分隔符,默认为制表符\t。


ENCLOSED BY ‘enclosure_character’:可选参数,指定字段的引用符,默认为空字符串。


ESCAPED BY ‘escape_character’:可选参数,指定转义符,默认为反斜杠\。


LINES子句:用来指定行的前缀和分隔符等。


STARTING BY ‘line_prefix’:可选参数,指定行的前缀,默认为空字符串。


TERMINATED BY ‘line_terminator’:指定行的分隔符,默认为换行符\n。


IGNORE number LINES:可选参数,指定忽略文件开始部分的行数。


(column1, column2, column3, …):可选参数,指定导入数据时要插入的列。如果省略,则默认导入所有列。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
存储 自然语言处理 关系型数据库
MySQL高级篇——索引的创建与设计原则
索引的分类与使用、MySQL8.0索引新特性、适合创建索引的情况、不适合创建索引的情况
MySQL高级篇——索引的创建与设计原则
|
6天前
|
存储 SQL 关系型数据库
MySQL高级篇——索引失效的11种情况
索引优化思路、要尽量满足全值匹配、最佳左前缀法则、主键插入顺序尽量自增、计算、函数导致索引失效、类型转换(手动或自动)导致索引失效、范围条件右边的列索引失效、不等于符号导致索引失效、is not null、not like无法使用索引、左模糊查询导致索引失效、“OR”前后存在非索引列,导致索引失效、不同字符集导致索引失败,建议utf8mb4
MySQL高级篇——索引失效的11种情况
|
15天前
|
存储 关系型数据库 MySQL
MySQL基础:索引
MySQL中的索引是一种数据结构,能大幅提升数据库查询效率和减少I/O成本,类似于书的目录帮助快速定位内容。其优势包括提高检索效率和降低排序成本,但会占用空间并影响更新表的效率。鉴于查询远多于更新,索引仍被推荐使用。索引分为多种类型,如B+树和哈希索引,其中B+树因其较低的高度和稳定的查询开销成为常用选择。创建和删除索引需谨慎,以免影响性能。
40 4
MySQL基础:索引
|
6天前
|
存储 SQL 关系型数据库
【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
MySQL调优主要分为三个步骤:监控报警、排查慢SQL、MySQL调优。 排查慢SQL:开启慢查询日志 、找出最慢的几条SQL、分析查询计划 。 MySQL调优: 基础优化:缓存优化、硬件优化、参数优化、定期清理垃圾、使用合适的存储引擎、读写分离、分库分表; 表设计优化:数据类型优化、冷热数据分表等。 索引优化:考虑索引失效的11个场景、遵循索引设计原则、连接查询优化、排序优化、深分页查询优化、覆盖索引、索引下推、用普通索引等。 SQL优化。
【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
|
6天前
|
存储 缓存 关系型数据库
MySQL高级篇——存储引擎和索引
MyISAM:不支持外键和事务,表锁不适合高并发,只缓存索引,内存要求低,查询快MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM不支持事务、行级锁、外键,有一个毫无疑问的缺陷就是崩溃后无法安全恢复。5.5之前默认的存储引擎优势是访问的速度快,对事务完整性没有要求或者以SELECT、INSERT为主的应用针对数据统计有额外的常数存储。故而 count(*) 的查询效率很高表名.frm 存储表结构;表名.MYD 存储数据 (MYData);
MySQL高级篇——存储引擎和索引
|
6天前
|
存储 关系型数据库 MySQL
MySQL高级篇——覆盖索引、前缀索引、索引下推、SQL优化、主键设计
覆盖索引、前缀索引、索引下推、SQL优化、EXISTS 和 IN 的区分、建议COUNT(*)或COUNT(1)、建议SELECT(字段)而不是SELECT(*)、LIMIT 1 对优化的影响、多使用COMMIT、主键设计、自增主键的缺点、淘宝订单号的主键设计、MySQL 8.0改造UUID为有序
MySQL高级篇——覆盖索引、前缀索引、索引下推、SQL优化、主键设计
|
7天前
|
存储 缓存 关系型数据库
MySQL 视图:数据库中的灵活利器
视图是数据库中的虚拟表,由一个或多个表的数据经筛选、聚合等操作生成。它不实际存储数据,而是动态从基础表中获取。视图可简化数据访问、增强安全性、提供数据独立性、实现可重用性并提高性能,是管理数据库数据的有效工具。
|
1月前
|
缓存 关系型数据库 MySQL
在Linux中,如何优化MySQL性能,包括索引优化和查询分析?
在Linux中,如何优化MySQL性能,包括索引优化和查询分析?
|
1月前
|
SQL 关系型数据库 MySQL
MySQL索引你用对了吗?
本文从遇到的问题出发,分析了tddl优化器、MySQL索引、分表拆分键的选择相关知识。
|
1月前
|
存储 关系型数据库 MySQL
MySQL bit类型增加索引后查询结果不正确案例浅析
【8月更文挑战第17天】在MySQL中,`BIT`类型字段在添加索引后可能出现查询结果异常。表现为查询结果与预期不符,如返回错误记录或遗漏部分数据。原因包括索引使用不当、数据存储及比较问题,以及索引创建时未充分考虑`BIT`特性。解决方法涉及正确运用索引、理解`BIT`的存储和比较机制,以及合理创建索引以覆盖各种查询条件。通过`EXPLAIN`分析执行计划可帮助诊断和优化查询。

热门文章

最新文章