关于mysql:记一次mysql-45GB大表优化

38次阅读

共计 501 个字符,预计需要花费 2 分钟才能阅读完成。

背景

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

表数据

表构造

前端 ui

零碎其中一个这个接口需要大略是这样的:

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

大略数据结构

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

未做任何解决查表: 接口响应

大略须要27s

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

此时查问工夫 26.51s 降落到了15.79s

建设索引

  • 留神大表数据建设索引也会占用大量的空间 所以咱们遵循从左到右的规定

这个接口都波及到 swId 字段的查问 所以咱们先给这个字段建设一个一般索引

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

实现 测试

果然腾飞1212 ms

在多申请几次, 目前响应速度满足需要

最初稳固在100ms

正文完
 0