记一次mysql 4.5GB大表优化

MySQL
411
0
0
2022-04-15
标签   MySQL优化

背景

最近在做一个系统 需要去爬取一些可用的车型数据。昨晚脚本跑了几小时,今天一看哇,这么多数据~(ps 还有一张同级别的英文数据的表)还好做了分表处理

表数据

mysql大表优化

表结构

mysql大表优化

前端ui

记一次mysql 4.5GB大表优化

系统其中一个这个接口需求大概是这样的:

swId是车的品牌id 用户进入这个页面就会开始选择拉的数据 分别获取make车型,model系统,year年款

大概数据结构

{
    "code": 200,
    "message": "success",
    "data": [
        "MINI",
        "SMART",
        "一汽丰田",
        "一汽佳宝",
        "一汽森雅",
        "一汽轿车",
        "一汽马自达"
        ]
}

未做任何处理查表:接口响应

记一次mysql 4.5GB大表优化

大概需要27s

第一步调整存储引擎MyISAM 大数据读多写少的时候 使用MyISAM会大大减少数据检索时间

此时查询时间26.51s下降到了15.79s

记一次mysql 4.5GB大表优化

建立索引

  • 注意大表数据建立索引也会占用大量的空间 所以我们遵循从左到右的规则

这个接口都涉及到sw_id字段的查询 所以我们先给这个字段建立一个普通索引

ALTER TABLE `system_model_year` ADD INDEX sw_i(`sw_id`) 

完成 测试

果然起飞1212 ms

记一次mysql 4.5GB大表优化

在多请求几次

记一次mysql 4.5GB大表优化

最后稳定在100ms