表连接不宜太多,索引不宜太多,一般5个以内

简介: 表连接不宜太多,索引不宜太多,一般5个以内

1、表连接不宜太多,一般5个以内

关联的表个数越多,编译的时间和开销也就越大

每次关联内存中都生成一个临时表

应该把连接表拆开成较小的几个执行,可读性更高

如果一定需要连接很多表才能得到数据,那么意味着这是个糟糕的设计了

阿里规范中,建议多表联查三张表以下

2、索引不宜太多,一般5个以内

索引并不是越多越好,虽其提高了查询的效率,但却会降低插入和更新的效率;

索引可以理解为一个就是一张表,其可以存储数据,其数据就要占空间;

索引表的数据是排序的,排序也是要花时间的;

insert或update时有可能会重建索引,如果数据量巨大,重建将进行记录的重新排序,所以建索引需要慎重考虑,视具体情况来定;

一个表的索引数最好不要超过5个,若太多需要考虑一些索引是否有存在的必要;

相关文章
|
Prometheus Kubernetes 监控
Kubernetes 的 NameSpace 无法删除应该怎么办?
Kubernetes 的 NameSpace 无法删除应该怎么办?
|
C语言 C++
C语言之分支与循环【附6个练习】(一)
C语言之分支与循环【附6个练习】(一)
|
存储 关系型数据库 MySQL
【阿里规约】阿里开发手册解读——数据库和ORM篇
从命名规范、建表规范、查询规范、索引规范、操作规范等角度出发,详细阐述MySQL数据库使用过程中所需要遵循的各种规范。
【阿里规约】阿里开发手册解读——数据库和ORM篇
|
网络协议 Java 关系型数据库
一篇文章彻底理解数据库的各种 JDBC 超时参数 2
一篇文章彻底理解数据库的各种 JDBC 超时参数
|
监控 安全 数据安全/隐私保护
ISO 27001与ISO 27002标准详解
【8月更文挑战第31天】
2577 0
|
安全 Java 编译器
深入理解Java中synchronized三种使用方式:助您写出线程安全的代码
`synchronized` 是 Java 中的关键字,用于实现线程同步,确保多个线程互斥访问共享资源。它通过内置的监视器锁机制,防止多个线程同时执行被 `synchronized` 修饰的方法或代码块。`synchronized` 可以修饰非静态方法、静态方法和代码块,分别锁定实例对象、类对象或指定的对象。其底层原理基于 JVM 的指令和对象的监视器,JDK 1.6 后引入了偏向锁、轻量级锁等优化措施,提高了性能。
638 3
|
存储 安全 Java
高并发神器!ConcurrentHashMap为何如此高效?
本文介绍了Java中的线程安全集合类`ConcurrentHashMap`,详细对比了其与`Hashtable`的性能差异,并解析了JDK 1.7和1.8中`ConcurrentHashMap`的底层实现。通过分段锁和CAS机制,`ConcurrentHashMap`在多线程环境下表现出色,是高并发场景下的理想选择。
296 1
|
消息中间件
对RabbitMQ Topics 通配符模式的深刻理解
Topic 类型与 Direct 相比,都是可以根据 RoutingKey 把消息路由到不同的队列。只不过 Topic 类型Exchange 可以让队列在绑定 Routing key 的时候使用通配符!
458 0
|
Java 数据安全/隐私保护
深入剖析:Java Socket编程原理及客户端-服务器通信机制
【6月更文挑战第21天】Java Socket编程用于构建网络通信,如在线聊天室。服务器通过`ServerSocket`监听,接收客户端`Socket`连接请求。客户端使用`Socket`连接服务器,双方通过`PrintWriter`和`BufferedReader`交换数据。案例展示了服务器如何处理每个新连接并广播消息,以及客户端如何发送和接收消息。此基础为理解更复杂的网络应用奠定了基础。
243 13
|
SQL 存储 消息中间件

热门文章

最新文章