数据库的面试一.关系型数据库和非关系型数据库区别二.数据库存储引擎三.事务的四个特性四.oracle和myql的区别(只列举了一部分)五.char和varchar的区别六.不同索引类型的区别七.选择索引的原则八.导致SQL执行慢的原因九.物理备份的方式十.有哪些备份类型十一.Mysql备份工具十二.备份策略十三.mysql优化:性能优化,安全优化(应用加固,系统加固)十四.Mysql脏数据的概念
前言最近跳槽了,前段时间一直在面试有一些问题问到的频率比较高,这里做一些整理和总结,希望能够帮助到也准备找工作的同学。其中关于数据库的问题问到的频率很高,然后数据库这块尤其关于数据库优化的知识问到的频率更是基本每家公司都会问。所以这里对关于数据库优化的内容总结一下,其中有些是自己平时开发的经验,有些是自己学习的内容。所以如果有不正确的地方欢迎讨论指正!正文关于数据库的优化其实不仅仅会在笔面试问的多
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阅读
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语句上优化 1.不要用select (这样会消耗CPU,IO,内存资源); 2.为常用的查询条件添加索引; 3.where条件上的优化,具体包括避免null值判断,不使用不等于!=,like等会导致全部扫描的条件语句; 4.查一条结果用limit1,统计总条数用count1替代count; 5.不要用子查询,用连接查询代替子查询; 6.连接查询join不要过多,控
对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。任何在Order by语句的非索引项或者有计算表达式都将降低查询速度应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如select id from t where num is null。任何在where子句中使用is null或is no
转载 2024-02-26 13:00:57
24阅读
一、Mysql数据库优化技术对mysql优化时一个综合性的技术,主要包括1: 表的设计合理化(符合3NF)2: 添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引]3: 分表技术(水平分割、垂直分割)4: 读写[写: update/delete/add]分离5: 存储过程 [模块化编程,可以提高速度]6: 对mysql配置优化 [配置最大并发数my.ini,
转载 2023-10-27 11:35:50
42阅读
优化数据库方法先说如何用慢查询定位问题。然后再进行索引,调优。Mysql优化主要就在于:索引的优化sql语句的优化,表的优化,在高并发网络环境下,除了优化数据库外,还会涉及到分布式缓存,CDN,数据库读写分离等高并发优化技术。最好是按照以下顺序优化:1.SQL语句及索引的优化2.数据库表结构的优化3.系统配置的优化4.硬件的优化表的设计合理化(符合3NF)添加适当索引(index) [四种:
转载 2023-09-19 01:53:06
101阅读
# Java 面试中的 SQL 优化指引 在软件开发过程中,SQL 优化是至关重要的一环,尤其在面试中,了解如何优化 SQL 是表现出色的关键。本文将指导您如何实现 SQL 优化,从理解基本概念到具体实现,每一步都有示例和详细说明。 ## 流程概述 首先,我们需要了解 SQL 优化的整个流程。下面的表格展示了各个步骤: | 步骤 | 描述
原创 2024-09-01 05:09:43
21阅读
性价比如上图,我们针对数据库的优化优先级大致如下:高:从SQL优化、索引优化入手,优化SQL、利用好索引,是重中之重;中:SQL优化之后,是对数据表结构设计、横纵分表分库,对数据量级的处理;低:通过修改数据库系统配置,最大化里用服务器内存等资源;低:通过以上方式还不行,那就是服务器资源瓶颈了,加机器。优化成本:硬件 > 系统配置 > 数据库表结构 > SQL及索引。优化效果:硬
一.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阅读
1、Sql优化主要优化的还是查询, 优化查询的话, 索引优化是最有效的方案。首先要根据需求写出结构良好的SQL,然后根据SQL 在表中建立有效的索引。但是如果索引太多,不但会影响写入的效率,对查询也有一定的影响。定位慢SQL然后并优化这是最常用,每一个技术人员都应该掌握基本的SQL调优手段(包括方法、工具、辅助系统等)。这里以MySQL为例,最常见的方式是,由自带的慢查询日志或者开源的慢查询系统定
前言 面试的时候经常会问的一个问题就是有没有做过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”,不要
1.选择最有效的表名顺序:例如选记录最少的作为基表;如果表多用交叉表;2.where后面条件的连接顺序; oracle的解析按照从上而下解析,因此表之间的连接必须写在where条件之前3.通配符’*’的使用 Sql在执行带通配符的语句时,如果‘%’在首位,那么在字段上建立的主键或者索引将会失效! Select name from user_info where name=’%A’;(无意义)4.使
Oracle SQL性能优化(1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为
转载 2016-07-12 22:52:00
98阅读
SQL语句优化性能不理想的系统中,除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化。为了获得稳定的执行性能,SQL语句越简单越好。对复杂的SQL语句,要设法对其进行简化。常见的简化规则如下: 1)不要有超过5个以上的表连接(JOIN) 2)考虑使用临时表或表变量存放中间结果 3)少用子查询 4)视图嵌套不要过深,一般视图的嵌套不要超过两个
转载 2023-08-31 15:37:43
125阅读
  • 1
  • 2
  • 3
  • 4
  • 5