公众号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
3、InnoDB 和MyISAM引擎的区别
MyISAM:只支持全文索引(full text);不支持事务;表级锁;保存表的具体行数;崩溃恢复不好。
Innodb:支持事务;支持全部的索引;行级锁(并非绝对,当执行sql语句时不能确定范围时,也会进行锁全表。
例如:update table set id=3 where name like 'a%';);不保存表的具体行数;崩溃恢复好。
4、InnoDB和MyISAM使用建议
MyISAM: • 一般来说MyISAM不需要用到事务的时候 • 做很多count计算 InnoDB: • 可靠性要求高的,或者要求支持事务 • 想要用到外键约束的时候(讲外键的时候会讲) 推荐: • 推荐用InnoDB
索引
1、什么是索引?
答:索引是一个单独的,存储在磁盘中上的数据库结构,它们包含着对数据表里的所有记录的引用指针。使用索引可以快速的找出在某列或多列中 有特定值的行。
2、索引的优缺点
优点: 通过创建唯一索引,来保证数据库表中的每一行数据的唯一性。 可以加快数据的检索速度。 可以保证表数据的完整性与准确性【外键索引】。 缺点: 索引需要占用物理空间。 对表中的数据进行改动时,索引也需要跟着动态维护,降低了数据的维护速度
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年算法题讲解视频》,最终以初试专业第三名进入了北理工软件工程专业。熟悉并掌握常见的数据结构,比如链表、数组、树、图、队列、堆栈等等,精通数据结构教材中的所有算法,比如常见的遍历算法、动态规划,递归,回溯,剪枝,并查集,最短路径,拓扑排序等等,所以快加入训练营吧,我们一起进步
奔跑的小梁,公众号:梁霖编程工具库算法训练营,快来参加