mysql数据库sql优化

2019-11-25  本文已影响0人  我是啵啵

mysql数据库管理系统(DBMS)

初始化模块自动给我们生成3个数据库

真正的数据库就是对应了一个一个的文件

结构图

下面是

存储引擎

不同的机构去写这个开源的东西

引擎介绍

innodb 与 myisam 区别

1.1.InnoDB 支持事务
2.InnoDB 支持外键
3.InnoDB 是聚集索引 ,(数据文件是和索引绑在一起) 用blance 树
必须要有主键,
MyISAM 是非聚集索引,数据文 件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。

  1. InnoDB 不保存表的具体行数,执行 select count(*) from table 时需要全表扫描

memory 存储引擎

存在内存中 只有一个表结构是存在磁盘上

存储引擎的管理命令

查看数据库支持的存储引擎
show engines

就是默认引擎是什么。
show variables like'%storage_engine%'
也可以在 MySQL 配置文件中查看。 windows-my.ini。 Linux-my.cnf

show create table user;
可以建表时指定引擎
engin=myisam
可修改

配置文件
里面有什么表信息 配置信息
C:\ProgramData\MySQL\MySQL Server 5.7\Data

mysql索引

适合建立索引

第一、在经常需要搜索的列上;
第二、在作为主键;
第三、在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;
第四、在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的; (between)
第五、在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的 排序;
第六、在经常使用在 WHERE 子句中的列上面创建索引,加快条件的判断速度。 建立索引,一般按照 select 的 where 条件来建立,比如: select 的条件是 wheref1and f2,那么如果我们在字段 f1 或字段 f2 上建立索引是没有用的,只有在字段 f1 和 f2 上同时 建立索引才有用等。

实例

比如用户名 ,id这种经常用的就是作为查询条件适合建索引
性别不经常查询就不适合建立
比如性别 不适合 因为结果集太大
修改大于检索就不适合创建索引

常用索引

blance tree

广度尽可能地大深度尽可能地少
B-tree 中,每个结点包含:
1、本结点所含关键字的个数;
2、指向父结点的指针;
3、关键字;
4、指向子结点的指针;

关键字存在一个平衡二叉树中

full-text

全文索引 特殊的b树 abc
a
ab
abc
只有左边 称为最左查找 "xxx%" 只能解决这种

索引的管理

mycat

上一篇 下一篇

猜你喜欢

热点阅读