MySQL优化系列随笔-1

一、MySQL逻辑分层

​ 可以分为:连接层 服务层 引擎层 存储层

​ 每层的作用:

二、MySQL引擎

  1. 查看mysql引擎

    show engines;
    
  2. 查看当前使用的引擎

    show variables like '%storage_engine%' ; 
    
  3. INNODB&MYISAM

    mysql的引擎有很多个,但是常用就这两个,那他们有什么区别呢?

    InnoDB(默认) :事务优先 (适合高并发操作;行锁)

    MyISAM :性能优先 (表锁)

  4. 建表时,指定mysql引擎

    create table if not exists tb(
    	id int(10) auto_increment,
    	name varchar(10) not null,
    	primary key (id)
    )ENGINE=MYISAM AUTO_INCREMENT=2 DEFAULT CHARSET=UTF8; -- AUTO_INCREMENT=2 为指定他的步长
    

三、为什么要进行mysql优化

1. 性能低
2. 执行时间太长
3. 等待时间太长
4. SQL语句欠佳(连接查询)
5. 索引失效
6. 服务器参数设置不合理(缓冲、线程数)

四、索引简介

1. mysql的优化,主要是指优化索引
2. 索引: 相当于书的目录
3. 索引: index是帮助MYSQL高效获取数据的数据结构。索引是**数据结构**(树:B树(默认)、Hash树...)

五、索引的优势

  1. 提高查询效率(降低IO使用率)
  2. 降低CPU使用率 (...order by age desc,因为 B树索引 本身就是一个 好排序的结构,因此在排序时 可以直接使用)

六、索引的弊端

  1. 索引本身很大, 可以存放在内存/硬盘(通常为 硬盘)

  2. 索引不是所有情况均适用:

    a.少量数据

    b.频繁更新的字段

    c.很少使用的字段

  3. 索引会降低增删改的效率(增删改 查)

七、对比

从上图中很明显的可以看出,当数据量很大时,合理的索引可以提高mysql效率。

posted @ 2020-09-05 20:42  宇宙砍柴人  阅读(159)  评论(0编辑  收藏  举报