30、大表数据查询,怎么优化

大表数据查询,怎么优化

  1. 优化sql语句+索引;
  2. 第二加缓如加redis;
  3. 主从复制,读写分离;
  4. 垂直拆分表,所谓的垂直拆分,就是把原来一个有很多列的表拆分成多个表,这解决了表的宽度问题.
    垂直拆分的原则:
  5. 把不常用的字段表单独存放到一个表中。
  6. 把大字段独立存放到一个表中。
  7. 把经常一起使用的字段放到一起。
  8. 水平切分,水平拆分是指数据表行的拆分,表的行数超过200万行时,就会变慢,这时可以把一张的表的数据拆成多张表来存放,水平拆分的方案:
  9. 范围
  10. 枚举
  11. 时间
  12. 取模
  13. 哈希
  14. 指定
    通常情况下,我们使用取模的方式进行拆分,例如一张400w数据的表,为提高查询效率,我们将其分成四张表(一模一样),然后通过ID取模的方式将数据分散到四张表中, ID%4 + 1 = [1, 2, 3, 4],因此查询更新删除时,我们都可以通过取模的方式获取
相关推荐
eWidget5 小时前
InfluxDB迁移至金仓数据库的同城容灾实践:性能显著提升、运维效率优化,某能源企业实现RPO_5秒的高可靠时序数据管理
运维·数据库·能源·时序数据库·kingbase·kingbasees·金仓数据库
小句6 小时前
MySQL慢查询日志详细使用指南
数据库·mysql·adb
老邓计算机毕设6 小时前
SSM医疗资源普查6qxol(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·javaweb开发·医疗资源管理
dyyx1116 小时前
如何从Python初学者进阶为专家?
jvm·数据库·python
码农水水6 小时前
中国邮政Java面试被问:容器镜像的多阶段构建和优化
java·linux·开发语言·数据库·mysql·面试·php
曹牧7 小时前
Oracle:NULL
数据库·oracle
龙之叶7 小时前
【Android Monkey源码解析五】- 异常处理
android·数据库
马克学长8 小时前
SSM医院门诊管理系统u4pw5(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·javaweb 开发·门诊管理
TDengine (老段)8 小时前
使用安装包快速体验 TDengine TSDB
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
闻哥8 小时前
Redis 避坑指南:从命令到主从的全链路踩坑实录
java·数据库·redis·缓存·面试·springboot