热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql视图会走索引吗_原创MySql专题之第七篇存储引擎、索引、视图、DBA命令

存储引擎1.存储引擎的使用数据表中的各表均被(在创建表时)指定的存储引擎来处理服务器可用的引擎依赖于一下因素:mysql的版本服务器在开发时如何被配置启动选项为了解决

存储引擎

1.存储引擎的使用

  • 数据表中的各表均被(在创建表时)指定的存储引擎来处理

  • 服务器可用的引擎依赖于一下因素:

mysql的版本 服务器在开发时如何被配置 启动选项

为了解决当前服务器中有哪些存储引擎可用,可使用show engines语句:

show engines\G

2.常见的存储引擎

2.1 MyISAM存储引擎

MyISAM存储引擎是mySql最常见的引擎

它管理的表具有以下特征:

(1)使用三个文件表示每个表:

  • 格式文件:存储表结构的定义(mytable.frm)

  • 数据文件:存储表行的内容(mytable.MYD)

  • 索引文件:存储表上索引(mytable.MYI)

(2)灵活的auto_increment字段处理

(3)可被转换为压缩、只读表来节省空间

2.2InnoDB存储引擎

InnoDB存储引擎是mysql的缺省引擎。(可以在my.ini文件中修改)

它管理的表具有下列主要特性:

  • 每个InnooDB表在数据库目录中以.frm格式文件表示

  • InnoDB表空间tablespace被用于存储表的内容

  • 提供一组用来记录事务性活动的日志文件

  • 用commit、savepoint及rollback支持事务处理

  • 提供全ACID兼容

  • 在mysql服务器崩溃后提供自动恢复

  • 多版本(mvcc)和行级锁定

  • 支持外键及引用的完整性,包括级联删除和更新

2.3 memory存储引擎

使用memory存储引擎的表,其数据存储在内存中,且行的长度固定,这两个特点使得memory存储引擎非常块。

memory存储引擎管理的表具有下列特性:(数据不能持久化)

  • 在数据库目录内,每个表以.frm格式的文件表示

  • 表数据及索引被存储在内存中

  • 表级锁机制

  • 不能包含text或BLOB字段

memory存储引擎以前被称为heap引擎

3.选择合适的存储引擎

  • 当创建表时,应根据表的应用场景选择合适的存储引擎:

  • MyISAM表最适合于大量的数据读而少量数据更新的混合操作。MyISAMb表的另一种适用情形是使用压缩的只读表

  • 如果查询中包含较多的数据更新操作,应使用InnoDB。其行级锁机制和多版本的支持为数据读取和更新的混合操作提供了良好的并发机制。

  • 可使用memory存储引擎来存储非永久需要的数据,或者是能够从基于磁盘的表中重新生成的数据。

索引

1.什么是索引?

index,索引相当于一本字典的目录,索引的作用是提高程序的检索【查询】效率

2.主键自动添加索引,所以能够通过主键查询尽量通过主键查询,效率较高。

3.索引和表相同,都是一个对象,表是存储在硬盘文件中的,索引是表的一部分,索引也是存储在硬盘文件中的。

4.在mysql数据库管理系统中,对表中记录进行检索的时候,通常包括几种检索方式:

  • 全表扫描【效率较低】

  • 通过索引进行检索【提高查询效率】

5.一张表中有多个字段,每一个字段都是可以添加索引的。

6.什么情况下适合给表中的某些字段添加索引?

  • 该字段的数据量庞大

  • 该字段很少使用DML操作【DML操作很多的话,索引也是需要不断的维护的,效率反而降低】

  • 该字段经常出现在where条件中

7.创建和删除索引

创建:

create index dept_dname_index on dept(dname);create unique index dept_dname_index on dept(dname);//添加unique表是dept表中的dname字段添加一个唯一性约束

删除:

drop index dept_dname_index on dept;

视图

1.什么是视图

  • 视图是一种根据查询(也就是select表达式)定义的数据库对象,用于获取想要看到和使用的局部数据。

  • 视图有时也被称为“虚拟表”

  • 视图可以被用来从常规表(称为“基表”)或其他视图中查询数据。

相对于从基表中直接获取数据,视图有一下好处:

访问数据变得简单可被用来对不同用户显示不同的表内容

用来协助适配表的结构以适应前端现有的应用程序

2.视图的作用:

  • 提高检索效率

  • 隐藏表的实现细节【面向视图检索】

DBA命令

1.新建用户

create user username identified by 'password';username:你将创建的用户名password:该用户的登录密码,密码可以为空,如果为空则该用户可以不需要密码登录服务器例:create user p361 identified by '123';

2.授权

grant all privileges on dbname.tbname to 'username'@'login ip' identified by 'password' with grant option;dbname=*表示所有数据库tbname=*表示所有表login ip=%表示任何ippassword为空,表示不需要密码即可登录with grant option;表示该用户还可以授权给其他用户

3.回收权限

revoke privileges on dbname[.tbname] from username;revoke all privileges on *.* from p361;

4.导入导出

导出:

导出整个数据库(mydb)mysqldump mydb>D:\mydb.sql -uroot -p123导出指定库下的指定表(emp表)mysqldump mydb emp>D:\mydb.sql -uroot -p123

导入:

source 路径source D:\mydb.sql

推荐关注:一个二代的编程历程

ad377898bdbb0562c7f404f297922679.png




推荐阅读
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 触发器的稳态数量分析及其应用价值
    本文对数据库中的SQL触发器进行了稳态数量的详细分析,探讨了其在实际应用中的重要价值。通过研究触发器在不同场景下的表现,揭示了其在数据完整性和业务逻辑自动化方面的关键作用。此外,还介绍了如何在Ubuntu 22.04环境下配置和使用触发器,以及在Tomcat和SQLite等平台上的具体实现方法。 ... [详细]
  • 本文介绍 DB2 中的基本概念,重点解释事务单元(UOW)和事务的概念。事务单元是指作为单个原子操作执行的一个或多个 SQL 查询。 ... [详细]
  • 本视频教程将带你快速了解 Android 开发的基础知识,并详细讲解如何在 Android 应用中使用 SQLite 数据库进行数据存储和管理。 ... [详细]
  • 开发日志:高效图片压缩与上传技术解析 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 使用HTML和JavaScript实现视频截图功能
    本文介绍了如何利用HTML和JavaScript实现从远程MP4、本地摄像头及本地上传的MP4文件中截取视频帧,并展示了具体的实现步骤和示例代码。 ... [详细]
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • 我在使用Laravel 5.4时遇到了一个问题,当我发送Markdown格式的邮件时,输出结果并不如预期。以下是详细情况和解决方案。 ... [详细]
  • 思科IOS XE与ISE集成实现TACACS认证配置
    本文详细介绍了如何在思科IOS XE设备上配置TACACS认证,并通过ISE(Identity Services Engine)进行用户管理和授权。配置包括网络拓扑、设备设置和ISE端的具体步骤。 ... [详细]
  • 在 Axublog 1.1.0 版本的 `c_login.php` 文件中发现了一个严重的 SQL 注入漏洞。该漏洞允许攻击者通过操纵登录请求中的参数,注入恶意 SQL 代码,从而可能获取敏感信息或对数据库进行未授权操作。建议用户尽快更新到最新版本并采取相应的安全措施以防止潜在的风险。 ... [详细]
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析
    基址获取与驱动开发:内核中提取ntoskrnl模块的基地址方法解析 ... [详细]
  • 探索聚类分析中的K-Means与DBSCAN算法及其应用
    聚类分析是一种用于解决样本或特征分类问题的统计分析方法,也是数据挖掘领域的重要算法之一。本文主要探讨了K-Means和DBSCAN两种聚类算法的原理及其应用场景。K-Means算法通过迭代优化簇中心来实现数据点的划分,适用于球形分布的数据集;而DBSCAN算法则基于密度进行聚类,能够有效识别任意形状的簇,并且对噪声数据具有较好的鲁棒性。通过对这两种算法的对比分析,本文旨在为实际应用中选择合适的聚类方法提供参考。 ... [详细]
author-avatar
阿尔及利亚奥兰叉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有