JAVA开发面试总结(三):数据库

最后更新于2021年3月26日10:46:21
最近被各种数据库的nt问题问的体无完肤,这就跟数据库干上了,气死我了。
MySQL教程 这个挺好的
MySQL高性能优化规范建议,速度收藏
mysql-tutorial
MySQL索引背后的数据结构及算法原理,这一篇写了很多很重要的知识点,都看完了,写得太好了。

数据库

1.关系型数据库和非关系型数据库
非关系型数据库的优势:

  1. 性能NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。
  2. 可扩展性同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。

关系型数据库的优势:
3. 复杂查询可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。
4. 事务支持使得对于安全性能很高的数据访问要求得以实现。
2.基操
选择
SELECT feature1, feature2, feature3
FROM some_table
ORDER BY feature2 DESC, feature3
LIMIT 5, 5;
WHERE子句
WHERE feature2=1.0;
WHERE feature1<>111; (<>代表不等于)
3.LIKE操作符
WHERE feature1 LIKE ‘fxxk%’
在搜索串中,%表示任何字符出现任意次数,如上WHERE子句可找出所有fxxk打头的feature1内的元素。(区分大小写,Fxxk和fxxk不一样)
WHERE feature1 LIKE ‘_ cm’ 只能匹配单个字符,比如1 cm, 2cm。假如是0.5 cm就匹配不了。
4.数据库索引
只需2张图让你了解数据库索引,到底是什么做的?

Mysql索引:图文并茂,深入探究索引的原理和使用
这篇文章的BTree和B+Tree的图画的很好,我一下就看懂了。第一个的图我就根本没get到点在哪。
为什么Mongodb索引用B树,而Mysql用B+树?
写的好,能看懂。
给我一分钟,让你彻底明白MySQL聚簇索引和非聚簇索引

5.mySql和mongoDB他到底到底到底是有个什么区别!!!
关于夏天的一切:使用json格式的mongodb基本上可以满足所有数据结构的存储, 而且你再也不必因为扩充一个小功能而纠结新建一个表来存储 还是新建一个字段并用字符串来存储(每次读/写都要解析/序列化成字符串存储)。
入坑数据库之mongodb和mysql比对
详解MongoDB!它与MySQL有何区别?
6.范式检查是个什么东西!!!

7.我的项目里的数据库引擎用的innoDB说一下是个啥!!!
一文了解InnoDB存储引擎
MySQL 的 InnoDB 存储引擎是怎么设计的?这个还没看
mysql存储引擎InnoDB详解,从底层看清InnoDB数据结构这个看得我走神了,回头再看一下。
MySQL 支持外键的存储引擎只有 InnoDB,在创建外键的时候,要求父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引。

8.外键是什么?
MySQL中的外键是什么、有什么作用
这个还是挺好理解的,业务相关的东西。

9.Drop、Truncate、Delete
数据库:drop、truncate、delete三者删除的区别

10.什么是mysql事务
我以为我对Mysql事务很熟,直到我遇到了阿里面试官这个也说到了mysql中的锁的问题,要找一篇写锁的文章看看。

11.mysql分库分表是怎么分的
面试必刷:最有用的Mysql面试题,面试了无数公司总结的
垂直分表:如果表字段比较多,将不常用的、数据较大的等等做拆分。
我的项目中包含验证码、账户信息、工厂信息、设备信息等表。
水平分表:首先根据业务场景来决定使用什么字段作为分表字段(sharding_key),比如我们现在日订单1000万,我们大部分的场景来源于C端,我们可以用user_id作为sharding_key,数据查询支持到最近3个月的订单,超过3个月的做归档处理,那么3个月的数据量就是9亿,可以分1024张表,那么每张表的数据大概就在100万左右。

12.#和$的区别
#会将输入的信息按字符串进行预编译,防止sql注入。
杂文(3):数据库查找数据类题目练习

猜你喜欢

转载自blog.csdn.net/weixin_44445507/article/details/112559391