Mysql实用总结第一篇

什么是MYSQL

mysql是一种开源的使用广泛的关系型数据库,支持多种存储引擎。

原理

MYSQL逻辑分层 :连接层 服务层 引擎层 存储层
存储引擎:
InnoDB(默认) :事务优先 (适合高并发操作;行锁)
MyISAM :性能优先 (表锁)

详情请看MySQL体系结构篇

查询数据库引擎

查询数据库引擎:  支持哪些引擎? show engines ;
				查看当前使用的引擎   show variables like '%storage_engine%' ;
	
	指定数据库对象的引擎:
	create table tb(
		id int(4) auto_increment ,
		name varchar(5),
		dept varchar(5) ,
		primary key(id)		
	)ENGINE=MyISAM AUTO_INCREMENT=1
	 DEFAULT CHARSET=utf8   ;

比较 事务:InnoDB 是事务型的,可以使用 Commit 和 Rollback 语句。 并发:MyISAM 只支持表级锁,而
InnoDB 还支持行级锁。 外键:InnoDB 支持外键。 备份:InnoDB 支持在线热备份。 崩溃恢复:MyISAM
崩溃后发生损坏的概率比 InnoDB 高很多,而且恢复的速度也更慢。 其它特性:MyISAM 支持压缩表和空间数据索引。

SQL优化方式

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

a.SQL :
	编写过程:
		select dinstinct  ..from  ..join ..on ..where ..group by ...having ..order by ..limit ..

	解析过程:			
		from .. on.. join ..where ..group by ....having ...select dinstinct ..order by limit ...


b.SQL优化, 主要就是 在优化索引
	索引: 相当于书的目录
	索引: index是帮助MYSQL高效获取数据的数据结构。索引是数据结构(树:B树(默认)、Hash树...)

	索引的弊端:
		1.索引本身很大, 可以存放在内存/硬盘(通常为 硬盘)
		2.索引不是所有情况均适用: a.少量数据  b.频繁更新的字段   c.很少使用的字段
		3.索引会降低增删改的效率(增删改  查)

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

索引

> 分类:
		主键索引:  不能重复。id    不能是null
		唯一索引  :不能重复。id    可以是null
		单值索引  : 单列, age ;一个表可以多个单值索引,name。
		复合索引  :多个列构成的索引 (相当于 二级目录 :  z: zhao)  (name,age)   (a,b,c,d,...,n)
	创建索引:
		方式一:
		create 索引类型  索引名  on 表(字段)
		单值:
		create index   dept_index on  tb(dept);
		唯一:
		create unique index  name_index on tb(name) ;
		复合索引
		create index dept_name_index on tb(dept,name);
		方式二:alter table 表名 索引类型  索引名(字段)
		单值:
		alter table tb add index dept_index(dept) ;
		唯一:
		alter table tb add unique index name_index(name);
		复合索引
		alter table tb add index dept_name_index(dept,name);
		注意:如果一个字段是primary key,则改字段默认就是 主键索引	
		除索引:
		drop index 索引名 on 表名 ;
		drop index name_index on tb ;
		查询索引:
		show index from 表名 ;
		show index from 表名 \G

查询性能优化

使用 Explain 进行分析
Explain 用来分析 SELECT 查询语句,开发人员可以通过分析 Explain 结果来优化查询语句。
比较重要的字段有:
select_type : 查询类型,有简单查询、联合查询、子查询等
key : 使用的索引
rows : 扫描的行数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值