背景
最近在做一个系统 需要去爬取一些可用的车型数据。昨晚脚本跑了几小时,今天一看哇,这么多数据~(ps 还有一张同级别的英文数据的表)还好做了分表处理
表数据
表结构
前端ui
系统其中一个这个接口需求大概是这样的:
swId
是车的品牌id 用户进入这个页面就会开始选择拉的数据 分别获取make
车型,model
系统,year
年款
大概数据结构
{
"code": 200,
"message": "success",
"data": [
"MINI",
"SMART",
"一汽丰田",
"一汽佳宝",
"一汽森雅",
"一汽轿车",
"一汽马自达"
]
}
未做任何处理查表:接口响应
大概需要
27s
第一步调整存储引擎MyISAM
大数据读多写少的时候 使用MyISAM
会大大减少数据检索时间
此时查询时间
26.51s
下降到了15.79s
建立索引
- 注意大表数据建立索引也会占用大量的空间 所以我们遵循从左到右的规则
这个接口都涉及到
sw_id
字段的查询 所以我们先给这个字段建立一个普通索引
ALTER TABLE `system_model_year` ADD INDEX sw_i(`sw_id`)
完成 测试
果然起飞
1212 ms
在多请求几次
最后稳定在
100ms