前言最近跳槽了,前段时间一直在面试有一些问题问到的频率比较高,这里做一些整理和总结,希望能够帮助到也准备找工作的同学。其中关于数据库的问题问到的频率很高,然后数据库这块尤其关于数据库优化的知识问到的频率更是基本每家公司都会问。所以这里对关于数据库优化的内容总结一下,其中有些是自己平时开发的经验,有些是自己学习的内容。所以如果有不正确的地方欢迎讨论指正!正文关于数据库的优化其实不仅仅会在笔面试问的多
1.sql语句的优化,在查询方面,查询中含有表达式方面2.视图方面:例如查询和添加修改都相对比较多,做视图的目的是为了减少添加之后频繁查询数据库,如果数据库关联的表比较多,这时会给数据造成查询压力。3.缓存方面:常用的缓存数据库(NoSQL)非关系型数据库,第一次查询数据库,并将查询的结果写入redis缓存数据库。可以达到减轻查询数据库的压力4.读写分离:用mysql主从复制实现读写分离,住数据库
【1】查询语句中不要使用*; 【2】尽量减少子查询,使用关联查询(left join, right join, inner join)代替; 【3】减少使用IN或者NOT IN,使用exists,not exists或者关联查询语句代替; 【4】应尽量避免在 where 子句中使用 or 来连接条件,如果一个字段有索引,一个字段没有索引,将导致引擎放弃使用索引而进行全表扫描,尽量用union或者u
转载
2023-12-01 09:17:53
87阅读
数据库的面试一.关系型数据库和非关系型数据库区别二.数据库存储引擎三.事务的四个特性四.oracle和myql的区别(只列举了一部分)五.char和varchar的区别六.不同索引类型的区别七.选择索引的原则八.导致SQL执行慢的原因九.物理备份的方式十.有哪些备份类型十一.Mysql备份工具十二.备份策略十三.mysql优化:性能优化,安全优化(应用加固,系统加固)十四.Mysql脏数据的概念
转载
2024-10-05 18:04:14
35阅读
Sql优化Sql执行顺序基础Sql优化查询SQL尽量不要使用select *,而是具体字段避免在where子句中使用or来连接条件使用varchar代替char尽量使用数值替代字符串类型查询尽量避免返回大量数据使用explain分析你SQL执行计划是否使用了索引及其扫描类型创建name字段的索引优化like语句:字符串怪现象索引不宜太多,一般5个以内索引不适合建在有大量重复数据的字段上where
转载
2023-08-12 23:50:05
375阅读
SQL的生命周期? 应用服务器与数据库服务器建立一个连接数据库进程拿到请求sql解析并生成执行计划,执行读取数据到内存并进行逻辑处理通过步骤一的连接,发送结果到客户端关掉连接,释放资源 2. 大表数据查询,怎么优化 优化shema、sql语句+索引;第二加缓存,memcached, redis;主从复制,读写分离;垂直拆分,根据你模块的耦合度,将一个大的系统分为多个小的系统,也就是分布式系统;水平
转载
2023-12-05 16:19:13
10阅读
上一篇文章介绍了MySQL SQL语句编写考题,本文将介绍MySQL的查询优化考题。首先看一道真题请简述项目中优化SQL语句执行效率的方法,从哪些方面,SQL语句性能如何分析?考点分析:这道题主要考察的是查找分析SQL语句查询速度慢的方法延伸考点:优化查询过程中的数据访问优化长难的查询语句优化特定类型的查询语句如何查找查询速度慢的原因记录慢查询日志分析查询日志,不要直接打开慢查询日志进行分析,这样
转载
2023-09-03 16:54:35
64阅读
如何设计一个高并发的系统① 数据库的优化,包括合理的事务隔离级别、SQL语句优化、索引的优化② 使用缓存,尽量减少数据库 IO③ 分布式数据库、分布式缓存④ 服务器的负载均衡锁的优化策略① 读写分离② 分段加锁③ 减少锁持有的时间④ 多个线程尽量以相同的顺序去获取资源等等,这些都不是绝对原则,都要根据情况,比如不能将锁的粒度过于细化,不然可能会出现线程的加锁和释放次数过多,反而效率不如一次加一把大
转载
2023-11-10 10:57:52
73阅读
Mysql一、数据库基础1.1 sql 语句1.2 数据库优化SQL 优化
1、我们在进行数据库查询时首先应该避免的是全表扫描,限定数据的范围。比如查询某一段时间的数据。
2、对于使用where 或者 order by 的列,我们应该建立索引。
3、通过explain显示了mysql如何使用索引来处理select语句以及连接表,可以帮助选择更好的索引和写出更优化的查询语句。
4、同时也应
转载
2024-01-04 17:08:42
91阅读
SQL优化(推荐阅读) 优化成本:硬件>系统配置>数据库表结构>SQL 及索引。 优化效果:硬件<系统配置<数据库表结构<SQL 及索引。 对于MySQL层优化我一般遵从五个原则
原创
2024-07-17 10:07:35
0阅读
常用SQL优化方法1.where、order by涉及的列增加索引。2.索引尽量建立在涉及不重复的列上3.使用符合索引查询时,where子句的列顺序和索引列顺序一样,遵循最左原则。(如果不使用最左原则,则会导致索引失效)4.表字段不要设置成可为空,因为当使用is null是查询时会导致索引失效而全表
转载
2021-03-26 00:20:00
95阅读
2评论
一、MySQL调优思路整天大概主要有三个维度:SQL语句优化:包括索引优化、特定查询优化;对频率控制优化:包括读缓存,写缓冲分库分表;SQL语句优化:面试中考察最多的点1.1 拆分字段 1.2 字段类型的选择 1.3 字段类型的大小限制 1.4 合理的增加冗余字段 1.5 新建字段一定要有默认值2.1 索引字段的选择 2.2 利用好的mysql支持索引下推,覆盖索引等功能 2.3 唯一索引和普通索
转载
2023-11-15 19:09:01
11阅读
在我的职业生涯中,我曾参与过多次MySQL的性能优化工作,特别是在面试过程中,面试官常常会询问我们在实际项目中做过哪些SQL优化。这个问题不仅关乎技术能力的体现,还涉及到业务影响和团队协作等多个方面。接下来,我就以讲一个真实的案例来梳理我遇到的MySQL优化问题及解决方案。
## 问题背景
在一次项目开发中,我们的团队负责一个用户管理系统,随着用户数量的增加,数据库的性能问题逐渐显现。具体业务
一.sql优化1.系统配置优化:1)从内存中读取数据,扩大innobd_buffer_pool_size,默认128m。可到4/3,降低磁盘操作。2)数据预热,通过预热脚本,将磁盘上的全部数据缓存到内存中3)提高磁盘读写性能,使用ssd或内存磁盘2.表结构设计优化1)设计中间表:针对统计或实时性不高要求数据2)设计冗余字段:减少表之间的关联操作,比如用户,订单,可以在订单表加用户姓名3)拆表:字段
转载
2023-11-24 23:47:58
75阅读
问题:**请简述下你对MySQL性能优化的理解?**回答:MySQL性能优化可分为四部分:1、硬件和操作系统层面的优化; 2、架构设计层的优化; 3、MySQL程序配置优化; 4、SQL执行优化;硬件和操作系统层面的优化从硬件层面来说,影响到MySQL性能因素主要是CPU、可用内存大小、磁盘读写速度、网络带宽; 从操作系统层面来说,影响到MySQL性能因素,应用文件句柄数、操作系统的网络配置
转载
2023-08-10 12:57:34
50阅读
# Java 面试中的 SQL 优化指引
在软件开发过程中,SQL 优化是至关重要的一环,尤其在面试中,了解如何优化 SQL 是表现出色的关键。本文将指导您如何实现 SQL 优化,从理解基本概念到具体实现,每一步都有示例和详细说明。
## 流程概述
首先,我们需要了解 SQL 优化的整个流程。下面的表格展示了各个步骤:
| 步骤 | 描述
原创
2024-09-01 05:09:43
21阅读
前言 面试的时候经常会问的一个问题就是有没有做过sql优化,每每问到这个问题我的答案都不太理想,今天就总结一下。SQL优化的一些方法写明查询具体某几列,减少*的使用,表名过长时,尽量使用表的别名少用模糊查询like,尽量少用% 例如:关键词%yue%,由于yue前面用到了“%”,因此该查询必然走全表扫描,除非必要,否则不要在关键词前加%二者都能使用尽量使用where (与having比较) whe
转载
2023-12-25 06:55:01
58阅读
目录 1、避免使用select *2、用union all代替union3、小表驱动大表4、批量操作5、多用limit6、in中值太多7、增量查询8 、高效的分页9 、用连接查询代替子查询10、 join的表不宜过多11、join时要注意12 、控制索引的数量13、选择合理的字段类型14、提升group by的效率15 、索引优化前言sql优化是一个大家都比较关注的热门话题,无
转载
2024-05-20 10:20:11
600阅读
1、表访问方式优化:a)普通表优先“Index Lookup 索引扫描”,避免全表扫描大多数场景下,通过“Index Lookup 索引扫描”要比“Full Table Scan (FTS) 全表扫描”效率要高的多。在编写SQL时,为了保证查询能够使用索引,需要避免出现如下场景:is null 和 is not null在oracle中null是不能够作为索引的,如果某列数据中有“null”,不要
转载
2023-08-09 12:49:51
140阅读
1.选择最有效的表名顺序:例如选记录最少的作为基表;如果表多用交叉表;2.where后面条件的连接顺序; oracle的解析按照从上而下解析,因此表之间的连接必须写在where条件之前3.通配符’*’的使用 Sql在执行带通配符的语句时,如果‘%’在首位,那么在字段上建立的主键或者索引将会失效! Select name from user_info where name=’%A’;(无意义)4.使
转载
2023-12-01 08:58:17
55阅读