MYSQL、SQL、索引、优化

存储引擎

# 查看数据库存储引擎、默认引擎——SHOW ENGINES;

InnoDB

1、InnoDB事务型数据库的首选引擎;

2、如果要提供提交、回滚、崩溃恢复能力的事物安全(ACID兼容)能力,并要求实现并发控制,InnoDB是一个好的选择;

3、实时业务生产(直接跟业务处理相关的数据库)mysql引擎首选;

MyISAM

1、 MyISAM拥有较高的插入、查询速度,但不支持事物

2、 如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率;

3、多用于非实时业务生产,如数据仓库数据应用数据库环境;(不存在多业务表的事务绑定操作,在用实时业务数据做了清洗、计算后,直接存入对应的数据仓库表,后面直接读取使用)

Memory(内存形存储引擎)——了解

1、临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果;

排查数据库慢查询,终止慢查询

查看数据库执行进程

SHOW PROCESSLIST;

SHOW FULL PROCESSLIST;


MYSQL、SQL、索引、优化


每个与mysqld的连接都在一个独立的线程里运行,您可以使用SHOW PROCESSLIST语句查看哪些线程正在运行,并使用KILL thread_id语句终止一个线程

查看sql执行计划——EXPLAIN

1、直接将explain加在一个sql前面,全部选中执行即可查看这个sql的执行计划;

2、查看key——是否使用了索引;查看rows——扫描行数,行数越大,执行难度越大;


MYSQL、SQL、索引、优化


索引使用


MYSQL、SQL、索引、优化


1、 一张表索引不能过多(5个),并非越多越好;

2、 索引建立在小字段上;

3、 索引建立在离散度大的字段上;

4、 索引应建立在那些将用于JOIN、WHERE条件判断、ORDERBY排序的字段上;

5、 索引非空给默认;

6、 设置延迟建立索引参数,增加更新效率;——DELAY_KEY_WRITE=1(之前只是MyISAM有效,不知新版本,InnoDB是否有效)

7、 5.7 InnoDB 支持全文索引;——为大文本字段建立关键字索引;

8、 聚簇索引 主键、非聚簇索引 非主键;索引使用最终都是依赖聚簇索引

9、 索引是一种数据结构(InnerDB——B+Tree),是需要空间来存储维护的,根据索引来找具体数据的存储位置;(新华字典的前几页)不走索引则全表扫描;

10、 大数据量迁移到新表;先不要建索引,迁移完成再建索引;

11、 数据插入,尽量批量插入;

left join、inner join、right join、逗号连接、union、union all

group by、order by、having

sql优化

数据库优化

缓存

使用Nosql、hbase、tablestore、mongodb

Mycat分库分表(一致性hash算法)

分布式按业务分库——拆分数据库

数据库引擎选择

数据同步——数据仓库(业务数据),降低对生产库的压力


努力为每一位计算机大学生/转行同学解答疑惑

vx: vicky2000100

展开阅读全文

页面更新:2024-04-02

标签:索引   字段   线程   语句   实时   数据仓库   首选   事物   效率   事务   能力   数据库   业务   引擎   数据   数码

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top