mysql优化---1。之概述

mysql优化概述

设计: 储存引擎,字段类型,范式。

功能: 索引,缓存,分区。

架构:主从复制,读写分离,负载均衡。

合理的sql:测试和经验。

储存引擎

表引擎--某一种数据的储存格式。一般叫某一种文件系统。

一般用到四种引擎 innodb myisam ,Archive , Memory

innodb :事务(多条sql语句全部执行完毕。才算完成操作),外键约束,数据的完整性(可通过binlogo入职恢复数据),擅长并发处理,行级锁定(逐个完成该行的操作。需排队)。表锁定(逐个完成该表的操作。需排队),mvcc特性(多版本并发控制,效果达到无阻塞读操作)。(5.6以上的innodb也支持全文索引)

myisam :支持全文索引。数据压缩存储,高速查询及插入,不会阻塞读写操作。

Archive :存档型,一般用于日志,仅提供插入和查询操作。非常高效,无阻塞的插入和查询。

Memory:内存型,数据存储于内存中,存储引擎。缓存型存储引擎。

常用的两种引擎 innodb 和myisam 

 

 

类型的选择

尽可能的小(占用储存空间少)

tinyint,smallint, mediumint, int , bigint, varchar(n), varchar(m), datetime, timestamp.

尽可能的定长(占用存储空间固定)

char, varchar, decimal(变长), double(float)(定长)。

尽可能使用整数

ipv4, int , unsigned, varchar(15), enum

范式,逆范式

例如在写好的规范式电商项目里。 商品表里已经有了商品的数量。而我们需要频繁的用到商品数量。 这个时候我们可以在需要的表里面增加商品数量的字段。当我们在次需要商品数量的时候。可以不用到联查。 这个就叫做逆范式。

提示。 这是一种优化的。 方案。 除非你对项目特别的熟悉 。不然的话请慎用 。 维护起来会有一定的麻烦。

索引的使用   

explain执行计划:可以在通过select语句前,使用explain。来获取该查询语句的执行计划。

4种索引:主键索引,普通索引,唯一索引,全文索引。

约束不是索引。 约束(一种限制,约束)依赖于索引(关键字。匹配)

什么场景使用呢?

1.索引检索,用于条件过滤

2.索引排序,用于orde bay排序

3.索引覆盖,在已查询出来的基础上继续查询拼接覆盖

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值