MySQL视图、索引、备份与恢复、执行计划(三)

简介: MySQL视图、索引、备份与恢复、执行计划(三)

6.使用索引时的注意事项

  • like以通配符%开头索引失效
  • 当全表扫描比走索引查询的快的时候,会使用全表扫描,而不走索引
  • 字符串不加单引号索引会失效
  • where中索引列使用了函数(例如substring字符串截取函数)
  • where中索引列有运算(用了< or > 右边的索引会失效,用<= or >= 索引不会失效)
  • is null可以走索引,is not null无法使用索引(取决于某一列的具体情况)
  • 复合索引没有用到左列字段(最左前缀法则,如果没用用到最左列索引,或中间跳过了某列有索引的列,索引会部分失效)
  • 条件中有or,前面的列有索引,后面的列没有,索引会失效。想让索引生效,只能将or条件中的每个列都加上索引

四、执行计划

刚刚在测试索引效果的时候反复提到执行计划,那么执行计划是什么呢?

MySQL的执行计划(Execution Plan)是通过使用EXPLAIN关键字来获取的。执行计划为查询优化器提供了关于如何执行查询的详细信息,包括表的读取顺序、使用的索引、连接方法等。以下是在MySQL中获取执行计划的基本步骤

  1. 准备一个查询语句:首先,准备一个需要获取执行计划的SELECT语句。
  2. 使用EXPLAIN关键字:在查询语句前加上EXPLAIN关键字,形成EXPLAIN SELECT语句,例如:
EXPLAIN SELECT column1, column2, ...
FROM table_name
WHERE condition;
  1. 执行查询并查看执行计划:执行上述EXPLAIN SELECT语句,将会返回一个Execution Plan,即查询的执行计划。执行计划是一个结果集,包含了查询优化器根据查询语句生成的执行计划详细信息。例如,执行计划可能包含以下列信息:
  • id: 查询块的唯一标识符。
  • select_type: 查询的类型,如简单查询、联接查询、子查询等。
  • table: 查询涉及的表名。
  • type: 表示MySQL用于执行查询的访问方式,如全表扫描、索引扫描、范围扫描等。
  • possible_keys: 可能使用的索引列表。
  • key: 实际使用的索引。
  • rows: 查询过程中扫描的行数估计。
  • extra: 其他附加信息,如是否使用临时表、是否使用文件排序等。
  1. 通过分析执行计划,你可以了解查询语句的性能瓶颈,是否使用了适当的索引、连接方式等。根据执行计划的输出,可以进行索引优化、查询重写等操作来改进查询性能。

请注意,执行计划中的具体信息会根据查询语句和数据库架构而有所不同。因此,理解和分析执行计划需要熟悉MySQL查询优化的基本原则和技巧。使用EXPLAIN关键字能够帮助你更好地优化你的查询,并提升MySQL的性能。

五、导入导出

1.使用工具,导入导出数据

导入👆👆

1.选择需要导入表存放的库右击➡运行sql文件➡选择sql文件即可

导出👇👇

1.选择需要导出的表右击➡转储SQL文件➡结构和数据/仅结构

2.根据自己的需求存放即可

2.使用mysqldump导入导出

导入👆👆

找到自己安装MySQL的安装位置进入bin目录执行cmd

执行下行代码即可导入文件

mysql -u [username] -p [database_name] < [input_file.sql]

  • [username]:数据库的用户名。
  • [database_name]:要导入的数据库的名称。
  • [input_file.sql]:要导入的SQL文件的完整路径和文件名。

注意:在输入命令后,你将会被要求输入密码。输入正确的密码后,导入过程将自动进行, 而且必须先手动创建数据库才可对相应的数据库进行导入操作否则找不到指定的数据库而报错。

导出👇👇

找到自己安装MySQL的安装位置进入bin目录执行cmd

执行下行代码即可导出文件

mysqldump -u [username] -p [database_name] > [output_file.sql]

  • [username]:数据库的用户名。
  • [database_name]:要导出的数据库的名称。
  • [output_file.sql]:导出的SQL文件的保存路径和文件名。

3.LOAD DATA INFILE

LOAD DATA INFILE是MySQL提供的一种机制,可用于将数据从文件导入到数据库表中,或将数据库表中的数据导出到文件中。使用LOAD DATA INFILE可以更高效地处理大量数据的导入和导出操作。

导入👆👆

1.执行导入语句

load data infile '文件路径' into table 表名(字段);

注意:必须先有符合的表结构以便与表的列对应。

导出👇👇

1.我们先要设置我们MySQL对盘符的访问权限

找到安装目录下的my.ini文件打开并输入secure_file_priv='运行访问路径名即可'

如果不配置就会出现以下的错误提示

2.语句导出 select * from 表名 into outfile '/文件名.sql';

如果这篇文章对你有帮助的话,还请点个赞吧!!

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
存储 SQL 关系型数据库
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
|
存储 关系型数据库 MySQL
MySQL数据库索引的数据结构?
MySQL中默认使用B+tree索引,它是一种多路平衡搜索树,具有树高较低、检索速度快的特点。所有数据存储在叶子节点,非叶子节点仅作索引,且叶子节点形成双向链表,便于区间查询。
300 4
|
12月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
812 10
|
存储 关系型数据库 MySQL
【赵渝强老师】使用select...into outfile语句备份MySQL
本文介绍了MySQL中使用`SELECT...INTO OUTFILE`语句将表数据导出为文本文件的方法。通过示例演示了如何备份员工表(emp)的数据,包括创建存储目录、设置权限、配置参数`secure_file_priv`以及解决相关错误的过程。字段分隔符和行终止符可自定义,确保数据格式符合需求。最后展示了备份文件的内容,验证操作成功。
761 36
|
存储 SQL 关系型数据库
MySQL 核心知识与索引优化全解析
本文系统梳理了 MySQL 的核心知识与索引优化策略。在基础概念部分,阐述了 char 与 varchar 在存储方式和性能上的差异,以及事务的 ACID 特性、并发事务问题及对应的隔离级别(MySQL 默认 REPEATABLE READ)。 索引基础部分,详解了 InnoDB 默认的 B+tree 索引结构(多路平衡树、叶子节点存数据、双向链表支持区间查询),区分了聚簇索引(数据与索引共存,唯一)和二级索引(数据与索引分离,多个),解释了回表查询的概念及优化方法,并分析了 B+tree 作为索引结构的优势(树高低、效率稳、支持区间查询)。 索引优化部分,列出了索引创建的六大原则
326 2
|
存储 SQL 关系型数据库
【赵渝强老师】使用mysqldump备份MySQL
本文介绍了 MySQL 自带的逻辑备份工具 mysqldump 的使用方法。通过 mysqldump,可以将数据库中的数据转换为对应的 SQL 插入语句,便于备份和还原。文章详细说明了如何备份所有数据库、指定数据库及特定表,排除某些表不备份的操作,以及删除数据库后如何通过备份文件恢复数据。同时提供了视频讲解和具体命令示例,帮助用户更好地理解和应用该工具。
1308 5
|
存储 SQL 关系型数据库
【赵渝强老师】使用mydumper备份MySQL
本文介绍了使用mydumper工具进行MySQL数据库备份与恢复的操作方法。相比单线程工作的mysqldump,mydumper支持多线程,速度提升可达10倍。其功能包括事务性表快照、快速压缩、导出binlog等,并提供详细的参数说明和操作步骤。文章通过实例演示了安装mydumper、创建存储目录、全库备份、指定数据库及表备份、删除数据库以及使用myloader恢复数据的完整流程,并附带视频讲解,帮助用户更好地理解和应用该工具。
923 0
|
11月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
615 158
|
11月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
11月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1631 152

推荐镜像

更多