公众号:架构师与哈苏
关注公众号进入it交流群! 公众号:架构师与哈苏 不定时都会推送一些实用的干货。。。

分析从几个维度

  • 设计维度(引擎,列类型)
  • 索引,sql优化
  • 配置,硬件
  • 架构维度
MyISAM
MyISAM引擎是MySQL 5.1及之前版本的默认引擎,它的特点是:

不支持行锁,读取时对需要读到的所有表加锁,写入时则对表加排它锁

不支持事务

不支持外键

不支持崩溃后的安全恢复

在表有读取查询的同时,支持往表中插入新纪录

支持BLOB和TEXT的前500个字符索引,支持全文索引

支持延迟更新索引,极大提升写入性能

对于不会进行修改的表,支持压缩表,极大减少磁盘空间占用

InnoDB
InnoDB在MySQL 5.5后成为默认索引,它的特点是:

支持行锁,采用MVCC来支持高并发

支持事务

支持外键

支持崩溃后的安全恢复

不支持全文索引

总体来讲,MyISAM适合SELECT密集型的表,而InnoDB适合INSERT和UPDATE密集型的表

sql语句优化

1.使用exists代替in,用not exists代替not in
2.避免在索引列上进行计算
3.避免在索引列上使用is null 和 is not null ,给个默认值
4.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引
5.sql like %分号在前索引会失效
posted on 2021-08-19 16:56  公众号/架构师与哈苏  阅读(31)  评论(0)    收藏  举报