【数据库】关于数据库你必须知道的事情

常用命令

mysql -u username -p
USE mydatabase;
SHOW DATABASES;
CREATE DATABASE newdatabase;

数据库的规约

包括:

  • 建表规约;
  • 索引规约;
  • SQL与ORM映射规约;

Explain技巧

explain的结果代表的含义需要比较清楚。参数中,type比较重要,这个表示如何访问数据的,另外就是extra,可以识别是否需要优化Sql。
这里讲讲extra中的三种类型:

  • using filesort 使用文件排序,这个效率比较慢
  • using index 使用索引,这个比较快
  • using temporary 使用临时表来保存中间结果,在使用order by , group by 的时候会出现

为什么禁止使用三表join

在数据库操作中,并没有一个硬性规定说超过三张表就禁止进行JOIN操作。实际上,数据库设计和查询的复杂性可以根据实际需求进行设计。然而,存在一些实践和性能考虑,可能会限制在单个查询中使用大量表的JOIN操作:

  1. 性能问题:随着JOIN操作的表数量增加,查询的执行时间可能会显著增加。这是因为数据库需要匹配更多的行,这可能导致大量的计算和数据传输。

  2. 复杂性:多表JOIN查询的逻辑可能变得非常复杂,难以理解和维护。这可能导致查询难以调试和优化。

  3. 可读性:过多的表参与JOIN会使得SQL查询变得难以阅读和理解,这可能会影响团队协作和代码的可维护性。

  4. 数据冗余和规范化:如果一个查询需要连接很多表,这可能表明数据库设计中存在数据冗余或者规范化不足的问题。

  5. 索引效率:多表JOIN可能使得数据库的索引效率降低,因为索引需要跨越更多的表。

  6. 事务管理:涉及多表的JOIN可能需要更大的事务日志,这可能会影响数据库的事务管理性能。

  7. 锁定和并发:多表JOIN可能会增加数据库锁定的复杂性,影响并发性能。

在实际应用中,如果确实需要进行多表JOIN,可以采取一些策略来优化性能,如:

  • 使用合适的索引。
  • 优化查询逻辑,减少不必要的JOIN
  • 分析查询计划,找出性能瓶颈。
  • 使用子查询或临时表来简化复杂的JOIN操作。

总之,超过三张表的JOIN操作并不是被禁止的,但是需要谨慎处理,以避免潜在的性能和维护问题。

常见的面试题

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值