Mysql优化一[通俗易懂]

Mysql优化一[通俗易懂]Mysql优化 一、存储引擎 1.查看所有引擎 2.查看默认存储引擎 3.MyISAM和InnoDB | 对比项 | MyISAM | InnoDB | | : : | : : | : : | | 主

Mysql优化

一、存储引擎

1.查看所有引擎

SHOW ENGINES;

代码100分

Mysql优化一[通俗易懂]

2.查看默认存储引擎

代码100分show VARIABLES LIKE '%STORAGE_engine%';

Mysql优化一[通俗易懂]

3.MyISAM和InnoDB

对比项 MyISAM InnoDB
主外键 不支持 支持
事务 不支持 支持
行表锁 表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作 行锁,操作时只锁某一行,不对其他行有影响,适合高并发的操作
缓存 只缓存索引,不缓存真实数据 不仅缓存索引还要缓存真实数据,对内存的要求较高,而且内存的大小对其性能有决定性的影响
表空间
关注点 性能 事务
默认安装 YES YES

二、SQL执行加载顺序

From left_table
on join_condition
<join_type> join right_table
where where_condition
group by group_condition
having having_condition
select
distinct select_list
order by orderBy_condtion
limit limit_num

三、索引

1.定义

索引是帮助Mysql高效获取数据的数据结构。——>本质:数据结构。

其目的在于提高查询效率,可以类比于字典,可以简单理解为排好序的快速查找数据结构

数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。

通常说的索引如果没有特别指明,说的都是B树(多路搜索树,并不一定是二叉的)结构组织的索引。其中聚集索引、次要索引、覆盖索引、复合索引、前缀索引、唯一索引默认都是使用B+树索引,统称索引。当然,除了B+树这种类型的索引之外,还有哈希索引等

索引会影响到查找和排序

一般来说索引也很大,不可能全部存储在内存中,因此索引往往以索引文件的方式存储在磁盘上。

2.特点

优点:提高数据检索的效率,降低了数据库的IO成本。

​ 通过索引对数据进行排序,降低数据排序的成本,降低了CPU的消耗。

缺点:实际上索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引也是占用空间的。

​ 虽然其大大调高了查询速度,同时却会降低更新表的速度。因为更新表时不仅要保存数据,还要保存一下 索引文件每次更新添加了索引列的字段,都会调整因为更新所带来的键值变化后的索引信息。

​ 索引只是提高效率的一个因素,如果你的数据库拥有大量的表,就需要花时间研究建立最优秀的索引,或 优化查询。

3.分类

  • 单值索引

    一个索引只包含单个列,一个表可以有多个单值索引。

  • 唯一索引

    索引列的值必须唯一,但允许有空值

  • 复合索引

    一个索引包含了多个列

4.基本语法

创建:UNIQUE是唯一索引, columnname只有一个是单值索引,有多个为复合索引

代码100分CREATE [UNIQUE] INDEX indexname on tablename(columnname1, columnname2...)
or
ALERT tablename add [UNIQUE] INDEX [indexname] on (columnname1, columnname2...)

删除:

DROP INDEX [indexname] on tablename

查看

SHOW INDEX FROM tablename

5.适合建立索引的情况

  1. 主键自动建立唯一索引
  2. 频繁作为查询条件的字段应该创建索引
  3. 查询中与其他表关联的字段,外键关系建立索引
  4. 查询中排序的字段,排序字段若通过索引去访问,将大大提高排序速度
  5. 单键/组合索引的选择问题(高并发适合创建组合索引)
  6. 查询中统计或分组的字段

6.不适合创建索引的情况

  1. 频繁更新的字段

  2. where条件里用不到的字段

  3. 表记录太少

  4. 数据重复且分布平均的表字段,因此应该只为最经常查询和最经常排序的数据建立索引

    索引的选择性=不同的数目/总数目

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/11117.html

(0)
上一篇 2022-12-16
下一篇 2022-12-16

相关推荐

  • 实验1:基于Weka的典型数据挖掘应用[亲测有效]

    实验1:基于Weka的典型数据挖掘应用[亲测有效]#一、实验目标 理解数据挖掘的基本概念,掌握基于Weka工具的基本数据挖掘(分类、回归、聚类、关联规则分析)过程。 #二、实验内容 下载并安装Java环境(JDK 7.0 64位)。 下载并安装Wek

    2023-03-20
    108
  • Redis系列(一)Redis入门「建议收藏」

    Redis系列(一)Redis入门「建议收藏」NoSQL 开发中或多或少都会用到,也是面试必问知识点。最近这几天的面试每一场都问到了。但是感觉回答的并不好,还有很多需要梳理的知识点。这里通过几篇 Redis 笔记整个梳理一遍,后面再加上面试题。

    2023-02-28
    96
  • 在数据库中存储的是数据结构_数据库物理存储结构

    在数据库中存储的是数据结构_数据库物理存储结构探索数据库内部存储数据存储结构,将从数据库内部如何存储数据,索引数据如何存储,操作数据对存储影响,最后总结。

    2023-02-13
    102
  • Python在线运行网站推荐

    Python在线运行网站推荐Python在编程领域已经成为了热门的编程语言之一,其简单易用的语法和强大的功能使其广泛应用于各种领域。但如果你是一个初学者或者不想安装Python环境,但又想进行代码调试、编写和运行,这时候我们就需要一些方便好用的Python在线运行网站。

    2024-05-14
    7
  • 如何找到Hive提交的SQL相对应的Yarn程序的applicationId[亲测有效]

    如何找到Hive提交的SQL相对应的Yarn程序的applicationId[亲测有效]最近的工作是利用Hive做数据仓库的ETL转换,大致方式是将ETL转换逻辑写在一个hsql文件中,脚本当中都是简单的SQL语句,不包含判断、循环等存储过程中才有的写法,仅仅支持一些简单的变量替换,比如

    2023-02-24
    84
  • t+0的技巧_T教石峰

    t+0的技巧_T教石峰摘要:T+0查询是指实时数据查询,数据查询统计时将涉及到最新产生的数据。 本文分享自华为云社区《大数据解决方案:解决T+0问题》,作者: 小虚竹 。 T+0问题 T+0查询是指实时数据查询,数据查询统

    2023-06-12
    106
  • 第七章-概念结构设计[亲测有效]

    第七章-概念结构设计[亲测有效]7.1 数据库设计概述: 数据库设计一般定义:数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户

    2023-06-15
    95
  • 哪个是最简单的NoSQL数据库_nosql和redis的区别

    哪个是最简单的NoSQL数据库_nosql和redis的区别在网上有关Redis相关文章满天飞的时候,这个时候我决定重温一下NoSQL。它是什么,用于解决什么问题,有哪些相类似的技术,与传统的关系型数据库有哪些差别,什么时候使用?也正如书中所说的,篇幅短小,内

    2022-12-17
    103

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注