如何使数据库读写操作变快

本文探讨了提高数据库性能的方法,包括合理的表设计、优化索引设计、选择合适的数据类型及SQL语句优化技巧,旨在帮助开发者更好地处理大规模数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单服务器能处理百万级/天的数据,那么如何可以让数据处理的更快呢?
一、表设计

  1. 实际应用中,允许数据库冗余,例如:A表包含a,b,c三个字段,B表也可以同时包含这三个字段。这样可以尽量避免联表查询
  2. 所有删除都要是软删除,因为硬删除会影响索引和硬盘的使用
  3. 关联字段要写清楚,每个表里的关联字段都是用统一的名称
  4. 当遇到多对多关系时,最好能建立关系表,例如,老师和学生的关系
  5. 当遇到状态混存的时候,可以用2n2n方法,例如:一个用户同时是A,B,C状态,A用2020代替,B用2121代替,C用2222代替,这样此用户只需要存7,就能代替A,B,C三种状态了,当然代码中需要做与操作,得到A,B,C
  6. 如果一张表,写和读操作都很多(建立了很多索引),则可以建立临时表,此临时表不加索引,只插入一天或一周的数据,之后做个定时任务,把此表中的数据在凌晨存储到历史表,并且清空临时表
  7. 数据库三范氏,一般实际开发都满足不了
  8. 如果有一个页面不需要实时数据,且当sql的关联表很多的时候,这时候sql会执行很慢,解决方法是可以写定时任务,把需要查询的数据放到一张新表里,之后直接查新表的数据

二、索引设计

  1. 索引是能不建立就不建立,因为会使数据库写操作的速度变慢
  2. 查询次数多的字段做索引,会是读操作变快
  3. 要建在数据差异性大的字段上,例如:0和1不需要建立索引
  4. 如果一张表,经常做插入操作,则减少此表的索引量

三、数据类型设计

  • int类型是最快的数据类型,例如:时间戳存int类

四、sql语句优化

  1. 如果有索引的话,要尽量避免不走索引的sql语句
  2. 避免硬删除,是会改变索引
  3. sql语句最左原则,写where语句时,压缩量大的放在前边
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值