广告
返回顶部
首页 > 资讯 > 数据库 >Mysql优化一
  • 325
分享到

Mysql优化一

Mysql优化一 2020-05-31 21:05:59 325人浏览 才女
摘要

Mysql优化 一、存储引擎 1.查看所有引擎 SHOW ENGINES; 2.查看默认存储引擎 show VARIABLES LIKE '%STORAGE_engine%'; 3.MyISAM和InnoDB 对比项 MyISAM

Mysql优化

一、存储引擎

1.查看所有引擎

SHOW ENGINES;

2.查看默认存储引擎

show VARIABLES LIKE '%STORAGE_engine%';

3.MyISAM和InnoDB

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

二、sql执行加载顺序

From left_table
on join_condition
 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只有一个是单值索引,有多个为复合索引

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. 数据重复且分布平均的表字段,因此应该只为最经常查询和最经常排序的数据建立索引

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

您可能感兴趣的文档:

--结束END--

本文标题: Mysql优化一

本文链接: https://www.lsjlt.com/news/1923.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mysql优化一
    Mysql优化 一、存储引擎 1.查看所有引擎 SHOW ENGINES; 2.查看默认存储引擎 show VARIABLES LIKE '%STORAGE_engine%'; 3.MyISAM和InnoDB 对比项 MyISAM...
    99+
    2020-05-31
    Mysql优化一
  • mysql的sql优化(一)
    配置慢查询日志 set global slow_query_log = [ON|OFF] set global slow_query_log_file = /sql_log/slowlog.log set global long_query...
    99+
    2021-11-19
    mysql的sql优化(一)
  • 优化一个mysql语句
    优化了一个mysql的语句,没有什么技术含量,说一下过程:优化前语句如下,大约执行时间为1-2秒select  u.id ,u.s_user_name,u.s_use...
    99+
    2022-10-18
  • MYSQL数据库优化(一)
    内存的读写速度远大于磁盘的读写速度,减少磁盘读写,可以作为重点优化方向。 数据库内部最重要的就是存储结构,存储结构必然涉及到数据结构知识。比如用到了常用的哈希图、树。 MYSQL数据库常用两种引擎,InnoDB、MyISAM,...
    99+
    2015-04-25
    MYSQL数据库优化(一)
  • 记一次MySQL的优化案例
    一  背景       有赞的每个OLTP数据库实例上会设置一个sql-killer进程用于kill 掉执行时间超过一定阈值的sql。下午开发接收到sql被kill的报错,一起...
    99+
    2022-05-16
    MySQL 优化 MySQL 优化案例
  • 推荐一款MySQL优化工具
    之前韩锋老师写过一篇关于查看MySQL执行计划的文章,里面解释了一个脚本,是他早先定制的一个还不错的功能。 如何用一款小工具大大加速MySQL SQL语句优化(附源码) 使用细节在文章里介绍...
    99+
    2022-10-18
  • MySQL Explain 详解(优化MySQL性能第一步)
    MySQL Explain 详解 使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句。分析你的查询预付或表结构的性能瓶颈。 查询结果返回字段分析 ...
    99+
    2014-08-20
    MySQL Explain 详解(优化MySQL性能第一步)
  • 一则MySQL派生表优化案例
      笔者最近遇到一则典型的因为sql中存在派生表造成的性能案例,通过改写SQL改善了的性能,但当时并没有弄清楚这其中的原因,派生表究竟是什么原因会导致性能上的副作用。说来也巧,很快就无意中就看到下文中的提到的相关的派生表的介绍以及...
    99+
    2018-04-24
    一则MySQL派生表优化案例
  • MySQL一键优化脚本怎么写
    MySQL一键优化脚本怎么写,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。概述今天主要分享下一个改写后的mysql一键优化脚本。环境准备模...
    99+
    2022-10-19
  • MYSQL 阿里的一个sql优化问题
    原创水平有限,如果有误请指出 今天研究了一天innodb事物,临近下班了同事田兴春告诉我有个阿里发出来的优化题,并且把建表和语句给我了,并且告诉我语句里面有隐式转换 昨天群里也有人说这道题但是一直没空看,...
    99+
    2022-10-18
  • 一文详解MySQL—Join的使用优化
    目录mysql JOIN类型MySQL JOIN 算法Nested-Loop Join 算法执行流程工作原理时间复杂度分析block Nested-Loop Join 算法执行流程工作原理时间复杂度分析Hash Join...
    99+
    2023-04-21
    MySQL Join使用 MySQL Join优化 MySQL Join
  • mysql优化——查询优化
    这一篇mysql优化是注重于查询优化,根据mysql的执行情况,判断mysql什么时候需要优化,关于数据库开始阶段的数据库逻辑、物理结构的设计结构优化不是本文重点,下次再谈。 查看mysql语句的执行情况,判断是否需要进行优化 ...
    99+
    2016-09-05
    mysql优化——查询优化
  • mysql 优化
    数据库层面:应用系统层面优化SQL优化SQL优化一般通过分析慢查询日志来抓取长事务高消耗的sql,通过结合具体业务,对sql逻辑进行分析and精简,or重写sql。通过配置slow_query_log=1和...
    99+
    2022-10-18
  • MySQL优化
    type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别 key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式 key_len列,索引长度 rows列,扫描行数。该值是个预估值 extr...
    99+
    2018-03-18
    MySQL优化
  • MYSQL中binlog优化的一些思考汇总
    问题 问题1:如何解决事务提交时flush redo log带来的性能损失 WAL是实现事务持久性(D)的一个常用技术,基本原理是将事务的修改记录redo log。redo log顺序追加写入。事务提交时,只需要保证...
    99+
    2022-05-30
    mysqlbinlog命令 mysql binlog查看 mysqlbinlog命令详解
  • mysql查询优化之100万条数据的一张表优化方案
    1.两种查询引擎查询速度(myIsam 引擎 ) InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫...
    99+
    2022-11-12
  • Mysql优化01
    Mysql数据库的优化技术 对mysql优化是一个综合性的技术,主要包括: a:表的设计合理化(符合3NF) b:添加适当索引(index)【四种:普通索引,主键索引,唯一索引unique,全文索引】 c:分表技术(水平分割,垂直分割) d...
    99+
    2020-06-19
    Mysql优化01 数据库入门 数据库基础教程
  • MySQL优化--MVCC
    MySQL优化--概述以及索引优化分析 MySQL优化--查询分析工具以及各种锁 七、MVCC 7.1、必备知识 7.1.1、什么是MVCC 多版本并发控制(Multiversion concurrency control, MCC 或 ...
    99+
    2022-03-08
    MySQL优化--MVCC 数据库入门 数据库基础教程
  • mysql优化3
    1.5 query_cache_size(1)简介:查询缓存简称QC,使用查询缓冲,mysql将查询结果存放在缓冲区中,今后对于同样的select语句(区分大小写),将直接从缓冲区中读取结果。一个sql查询如果以select开头,那么mys...
    99+
    2023-01-31
    mysql
  • 记一次MySQL字符串索引优化方案
    本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等 字符串建立索引的优化 1. 建立前缀索引 假设建立一个支持邮箱登录的用户表,对于邮件字段来说,可以有以下几种建立索引的方式: ①. 直接对整个字符串建立索引 alt...
    99+
    2017-06-13
    记一次MySQL字符串索引优化方案 数据库入门 数据库基础教程 数据库 mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作