Java面试题——数据库的优化

数据库优化是指通过对数据库系统进行适当的配置和监控,以及对数据库设计、查询和操作等方面进行优化,从而提高数据库系统的性能、可用性和可扩展性。具体来说,可以从以下几个方面入手进行数据库优化:

  1. 数据库设计优化:包括表结构设计、索引设计、分区设计、对存储引擎的优化、对存储的优化、对内存的优化等方面。例如,合理地设计表结构可以避免数据冗余和重复,提高数据访问效率;创建适当的索引可以加快数据检索速度;使用分区技术可以提高数据存储和查询效率。

  2. 查询优化:包括 SQL 语句的编写、索引的选择和使用、查询计划的优化等方面。例如,在编写 SQL 语句时应该尽量避免使用子查询和联合查询等复杂语句;在选择索引时应该根据实际需求和数据特征来进行选择;在优化查询计划时可以使用 Explain Plan 等工具来定位问题,以便进行针对性优化。

  3. 数据库参数优化:包括缓存大小、线程池大小、日志设置等方面。例如,调整缓存大小可以提高数据访问效率;调整线程池大小可以避免线程阻塞和资源浪费;设置正确的日志级别可以降低系统负载和存储压力。

  4. 数据库监控和调优:包括性能指标的收集、阈值的设置、故障排查等方面。例如,使用监控工具可以实时监测数据库系统的运行状态;设置合理的性能指标可以及时发现和解决问题;进行故障排查时应该使用科学的方法和工具,避免盲目调整或者误操作。

  5. 代码优化:包括应用程序的设计和编码等方面。例如,在应用程序中应该尽量避免频繁访问数据库,合理地使用缓存和批处理技术可以提高数据访问效率;合理使用事务可以确保数据一致性和可靠性;避免使用过于复杂的算法和逻辑可以降低系统负载和卡顿。

需要注意的是,数据库优化是一个持续不断的过程,需要根据实际需求和环境变化来进行调整和改进。在优化数据库时,应该充分了解和掌握相关的知识和技术,同时也需要结合实践经验和业务需求来进行优化。

*下面针对查询优化具体有:

(1)基本写法的优化:

  1. 少使用select * ,尽量用具体的字段。
  2. 对条件来说等号之类两边的字段类型要相同,字符串不加引号索引会失效。
  3. 尽量少使用order by 对于多个字段需要排序可使用组合索引。
  4. 对于group by 需要先过滤后分组。
  5. 在查询时减少使用null,对字段有多个null可设默认值。
  6. 少使用like%,需要使用like时尽量将%放在字段的之后。
  7. where 后面少使用函数或者算法运算。
  8. 去重的distinct j尽量少使用distinct * ,可选择几个关键字段。
  9. 不要五张以上的表联查。

(2)替换优化:

     1.不要使用not in 和<> ,这样会破坏索引,可以使用 not exists 代替 not in ,<> 可以分为两个条件< 或 >.

     2.使用连接join 代替子查询。

(3)建立使用合适索引:

     1.对于高频筛选字段可以适当的建立索引。

     2.一个表的索引最好不好超过五个,多了会影响插入和修改。

     3.使用组合索引时要遵守最左原则。    

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值