如上图示例:
- 搜索条件跨越多张表(三张或三张以上),条件复杂;
- 单表数据1千万左右;
- 列表数据来源多张表(三张或三张以上);
- 列表分页按时间排序;
- 并发并不是很大;
历史原因:
- 现在不想重构表结构,动的太大;
现在做法:
- 列表(不带搜索条件)只能单表查询,两张表join已经出现时间问题了,然后再独立查询其他表;
- 带搜索并且搜索条件跨越多表的列表,暂时是join查询,30多秒出来数据;
技术栈:LNMP
问题:
因为是做的后台项目,整个系统几乎都是这样类似的页面;
如何优化呢?
或者采用什么技术能解决此场景下的性能瓶颈问题?
多谢各位大神!
单表千万已经是比较大的数据量了,提几个思路:
1、数据能否归档,如只保留最近3个月数据,将单表的数据量降下来;
2、查询条件限制有必填字段,且这些字段在数据库中有合适的索引;
3、考虑表适当做字段冗余,避免表关联查询;
硬件方面如有条件,表数据文件放到SSD硬盘。