mysql存储引擎和索引

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: mysql存储引擎和索引

公众号merlinsea


存储引擎



1、什么是数据存储引擎?

  答:存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。

   注意:存储引擎是基于表设计的,同一个库的不同的表可以是不同的存储引擎,也可以是相同的存储引擎。


2、数据库关于存储引擎的语句


查看数据库支持的存储引擎
show engines;
查看员工表的引擎:
show create table employee\G
查看当前库所有表的引擎:
show table status\G
修改employee表的存储引擎【临时修改,下次重新打开数据库会还原】
alter table employee engine='MyISAM';
修改数据库默认的存储引擎【永久修改】
修改配置文件 /etc/my.cnf,然后重启mysql服务
default-storage-engine=MyISAM

640.jpg


3、InnoDB 和MyISAM引擎的区别

   MyISAM:只支持全文索引(full text);不支持事务;表级锁;保存表的具体行数;崩溃恢复不好。

   Innodb:支持事务;支持全部的索引;行级锁(并非绝对,当执行sql语句时不能确定范围时,也会进行锁全表。

   例如:update table set id=3 where name like 'a%';);不保存表的具体行数;崩溃恢复好。

640.jpg


4、InnoDB和MyISAM使用建议

MyISAM:
    • 一般来说MyISAM不需要用到事务的时候
    • 做很多count计算
InnoDB:
    • 可靠性要求高的,或者要求支持事务
    • 想要用到外键约束的时候(讲外键的时候会讲)
推荐:
    • 推荐用InnoDB


索引



1、什么是索引?

   答:索引是一个单独的,存储在磁盘中上的数据库结构,它们包含着对数据表里的所有记录的引用指针。使用索引可以快速的找出在某列或多列中 有特定值的行。


2、索引的优缺点

优点:
    通过创建唯一索引,来保证数据库表中的每一行数据的唯一性。
    可以加快数据的检索速度。
    可以保证表数据的完整性与准确性【外键索引】。
缺点:
    索引需要占用物理空间。
    对表中的数据进行改动时,索引也需要跟着动态维护,降低了数据的维护速度

640.jpg


3、组合索引

联合索引又称组合索引或者复合索引,是建立在俩列或者多列以上的索引。
创建组合索引:
alter table test add index(username,servnumber,password);
删除组合索引:
alter table test drop index username;
组合索引的性能为什么高于多个单列索引拆分?
    答:对于sql语句 select * from test where name='merlin' and age='19' and password='123456';
    如果对name,age,password建立了组合索引,那么如果每一列都可以将查询的数据量缩小10%,那么组合索引实际缩小的范围是1/10000
    但如果对name,age,password都建立的是单列索引,数据库则会根据算法只选择其中一个性能最好的单列索引使用,因此范围只缩小1/10


关于leetcode算法训练营:

   加我微信号私聊参加训练营~

本人用c++刷了800道左右的算法,java语言刷了600道左右的算法题,并对这些题做了详细的个人总结。本科期间系统学习了数据结构与算法课程,同时考研过程中写完了率辉主编的《2020年数据结构高分笔记》和《数据结构1000题》,看完的视频包括《mooc浙大数据结构国家精品课程》和《王道考研408数据结构课程》,《王道2019年算法题讲解视频》,最终以初试专业第三名进入了北理工软件工程专业。熟悉并掌握常见的数据结构,比如链表、数组、树、图、队列、堆栈等等,精通数据结构教材中的所有算法,比如常见的遍历算法、动态规划,递归,回溯,剪枝,并查集,最短路径,拓扑排序等等,所以快加入训练营吧,我们一起进步

奔跑的小梁,公众号:梁霖编程工具库算法训练营,快来参加


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
SQL 存储 关系型数据库
MySQL索引及事务
MySQL索引及事务
16 2
|
5天前
|
存储 SQL 关系型数据库
完蛋!😱 我被MySQL索引失效包围了!
完蛋!😱 我被MySQL索引失效包围了!
|
5天前
|
SQL 存储 关系型数据库
MySQL的3种索引合并优化⭐️or到底能不能用索引?
MySQL的3种索引合并优化⭐️or到底能不能用索引?
|
5天前
|
存储 SQL 关系型数据库
MySQL索引,看这一篇就够了!
MySQL索引,看这一篇就够了!
|
5天前
|
Java 关系型数据库 MySQL
MySQL 索引事务
MySQL 索引事务
13 0
|
6天前
|
存储 SQL 关系型数据库
MySQL 底层数据结构 聚簇索引以及二级索引 Explain的使用
MySQL 底层数据结构 聚簇索引以及二级索引 Explain的使用
23 0
|
6天前
|
自然语言处理 关系型数据库 MySQL
一文明白MySQL索引的用法及好处
一文明白MySQL索引的用法及好处
17 0
|
6天前
|
存储 SQL 关系型数据库
MySQL的优化利器⭐️索引条件下推,千万数据下性能提升273%🚀
以小白的视角探究MySQL索引条件下推ICP的优化,其中包括server层与存储引擎层如何交互、索引、回表、ICP等内容
MySQL的优化利器⭐️索引条件下推,千万数据下性能提升273%🚀
|
15天前
|
存储 关系型数据库 MySQL
MySQL 8 索引原理详细分析
了解索引的详细原则,不仅有助于优化,能把索引搞清楚的,面试中优势也会很突显。 关于数据库优化的话题,V哥觉得还有很多地方可以聊,如果你有兴趣,欢迎关注一起讨论。
MySQL 8 索引原理详细分析
|
15天前
|
存储 关系型数据库 MySQL
Mysql学习--深入探究索引和事务的重点要点与考点
Mysql学习--深入探究索引和事务的重点要点与考点