2017/08/25 数据库优化学习

数据库的操作优化本质 就是控制好 线程io操作 硬盘数据 线程快速锁定数据信息回传给程序。二叉树 红黑树

事务的事务四大特征 : 原子性 一致性 隔离(脏读、不可重复读、幻读)  持久


2017/08/25 数据库优化学习_第1张图片

EXPLAIN 列的解释用来分析你sql的情况:

id:SELECT 标识符,下面具体分析 select_type: SELECT 类型,下面会具体分析

table: 查询所使用的表type: JOIN 的类型,下面会具体分析possible_keys: 可能使用的索引,但不一定会真正使用

key: 真正使用的索引key_len: 所使用的索引长度ref: 与索引比较的列rows: 预估需要扫描的行数Extra: 额外信息

mysql 的存储引擎:MyISAM  :全表索引插入很快 可以用来存日志信息

InnoDB:常用的存储引擎,适用场景

行级锁定对高并发有很好的适应能力,但需要确保查询是通过索引完成

数据更新较为频繁的场景

数据一致性要求较高

硬件设备内存较大,可以利用InnoDB较好的缓存能力来提高内存利用率,尽可能减少磁盘 IO

最佳实践

主键尽可能小,避免给Secondary index带来过大的空间负担

避免全表扫描,因为会使用表锁

尽可能缓存所有的索引和数据,提高响应速度

在大批量小插入的时候,尽量自己控制事务而不要使用autocommit自动提交

合理设置innodb_flush_log_at_trx_commit参数值,不要过度追求安全性

避免主键更新,因为这会带来大量的数据移动

你可能感兴趣的:(2017/08/25 数据库优化学习)