MySQL性能优化(未完待续)

概述

数据库往往是web应用的性能瓶颈,我们应该尽可能地提高数据库的性能,这往往需要我们对MySQL做一些自定义的设置。下面的内容大多为学习笔记,实战代码也不多,主要是为了提供一个突破MySQL性能瓶颈的总体思路。

  • 参考的书籍《深入浅出MySQL》等

    一、修改表引擎

    MySQL中有一个存储引擎的概念,针对不同的存储需求,我们可以选择最优的存储引擎,也就是同一个数据库里面的不同的表使用不同的存储引擎。

    存储引擎相关操作

  • 查看默认存储引擎

show variables like 'table_type'
  • 查看当前数据库支持的存储引擎
show engines \G

或者

show variables like 'have%'
  • 在创建数据表时,可以使用engine关键字指定使用的存储引擎(MySQL5.5以前默认为MyISAM,之后默认为InnoDB)
  • 使用alter关键字修改已存在的表
alter table table_name engine = innodb;

常用存储引擎

特点 MyISAM InnoDB MEMORY MERGE
事务安全 支持
外键支持 支持
锁机制 表锁 行锁 表锁 表锁
全文索引 支持

MyISAM

MyISAM不支持事务,也不支持外键,其优点是访问的速度快,对事务没有要求的或者以SELECT、INSERT为主的表可以使用这个引擎。

InnoDB

InnoDB一般用于web事务处理,也是MySQL中唯一支持外键索引的存储引擎。

MEMORY

MEMORY存储引擎将数据保存在内存中,故其访问速度非常快,但是使用时需要注意数据的持久化,以免丢失。一般用于存放中间结果,便于高效得对中间结果进行分析,缺点是对数据表的大小有严格的限制。

MERGE

MERGE存储引擎是一组MyISAM表的(逻辑)组合,这些MyISAM表结构必须完全相同,其本省并没有数据,只是对其组合的表进行操作,删除MERGE表对其组合的表也没有影响,其可以突破对单个MyISAM表大小的限制,并且通过将不同的表发布在磁盘的不同区域,有效得改善表的访问效率。

猜你喜欢

转载自www.cnblogs.com/Libinkai/p/10122309.html