9-数据库优化

news/2024/11/24 12:52:11/
  • 数据库优化通常是为了减轻对数据库压力,优化方式可以从使用缓存、数据库配置、sql和索引优化入手;
    使用缓存可以将系统请求先打向缓存,如果缓存中有我们要获取的数据,那将不会再走数据库。
    数据库配置方面是指可以通过修改数据库配置文件入手,将服务器资源利用率最大化。
    sql和索引优化中我们知道在写sql的时候正确的使用索引能够大幅度提高执行速度,比如多表关联时数据量很大的时候,关联条件涉及的字段可以使用普通索引和组合索引。

·
·
·

  • sql上的优化可以是
    尽量让它避免全表扫描、
    使用到索引、
    减少无用字段的查询。

·
·
·

  • 举几个列子
    1.在进行模糊检索的时候尽量避免字段开头使用全表扫描
    2.需要使用条件的时候可以通过使用union联合关键字来替换
    3.尽量避免null空值判断,可以通过设置默认值来用默认值判断
    4.where条件中的等于号左边尽量避免复杂的表达式
    5.避免select * 这种sql的出现,这会增加是数据库解析成本
    6.避免无用字段的查询,无用字段的查询会增加网络消耗,也增加解析成本
    等等。
  • 另外还可以通过分库分表的方式对数据库结构优化。

·
·
·

  • 聚集索引(主键索引(唯一索引))也称聚族索引
    保证数据的唯一性

  • 唯一索引
    避免数据列值重复

  • 普通索引
    快速检索数据

  • 全文索引
    大数据集情况下快速检索数据

·
·
·

  • 在InnoDB中,索引是使用B+树来作为索引结构,根据其叶子节点的不同可以分聚集索引和非聚集索引;
    聚集索引就是所谓的主键索引,其所在的叶子节点存储的是整行数据,在检索索引的时候检索到就直接返回整行数据;
    非聚集索引所在的节点存储的其实是行数据主键的值,检索过程中,当根据非聚集索引检索到对应节点会返回节点存储的行数据主键的值,
    然后去检索主键索引树拿到要检索的数据,这个过程就是回表。

·
·
·

  • 避免回表:
    1.尽量使用主键
    2.查询的时候用到的索引在检索列中出现就不会回表。
    3.根据实际情况考虑用组合索引,使其能够在一颗B+树就能检索到需要的数据。

http://www.ppmy.cn/news/22871.html

相关文章

KT中代理属性的实现及使用案例分析

普通的delegate代理属性get/set方法,可以看到类中会声明一个数组保存需要代理的所有KProperty字段信息(包含类名,字段名称,字段签名()) PS:冷知识map也可以用于委托,只要有get/set方…

day07_Java中的流程控制(循环结构丶break丶continue)

循环概述 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一…

Vue 3 中的极致防抖/节流(含常见方式防抖/节流)

各位朋友你们好呀。今天是立春,明天就是正月十五元宵节了,这种立春 元宵相隔的时候,可是很难遇到的,百年中就只有几次。在这提前祝大家元宵快乐。 今天给大家带来的是Vue 3 中的极致防抖/节流(含常见方式防抖/节流&a…

binwalk远程命令执行漏洞原理以及演示 CVE-2022-4510

简介 根据cve官方描述,从版本2.1.2到 2.3.3的binwalk中发现了一个路径遍历漏洞。此漏洞允许远程攻击者在安装受影响的binwalk机子上执行任意代码 什么是PFS文件 PFS文件是由PhotoFiltre Studio(图像修饰程序)创建的选择文件。 它包含图像编…

第2讲 Exception和Error有什么区别?

第2讲 | Exception和Error有什么区别? 世界上存在永远不会出错的程序吗?也许这只会出现在程序员的梦中。随着编程语言和软件的诞生,异常情况就如影随形地纠缠着我们,只有正确处理好意外情况,才能保证程序的可靠性。 J…

SpringCloud系列 Nacos配置管理

在Nacos中添加配置信息&#xff1a; 工程引入&#xff1a; nacos配置管理依赖 <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> bootstrap.yml&a…

第03讲:BootStrap

贯穿案例展示–车位管理 导入&#xff1a;为什么要使用BootStrap Bootstrap&#xff0c;来自 Twitter&#xff0c;是一款受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的&#xff0c;它简洁灵活&#xff0c;使得 Web 开发更加快捷。 大家可以在github上下载&am…

动态主机配置协议(DHCP,Dynamic Host Configuration Protocol)

动态主机配置协议(DHCP&#xff0c;Dynamic Host Configuration ProtocolDHCPlinux:安装操作指南查看MAC物理地址方法&#xff1a;拓展知识1&#xff1a;拓展知识2&#xff1a;拓展&#xff1a;DHCP 动态主机配置协议&#xff08;DHCP&#xff0c;Dynamic Host Configuration …