最近遇到一张表的设计问题:
anchor表有如下字段:
id
title
is_live
views
content
其中is_live表示主播的直播状态,views表示人气,这两个字段都是频繁更新,php定时脚本每两分钟更新一下这两个字段,这样就带来了该表频繁的update操作,非常影响性能,但是本人将is_live和、views独立出去后,由于本人要使用is_live和views排序,例如
select * from anchor order by is_live desc,views desc,那么之后就不得不使用关联查询来排序,本人想问一下这两种设计对于性能提升哪种更好?或大家有什么好的解决办法,谢谢了!
anchor表有如下字段:
id
title
is_live
views
content
其中is_live表示主播的直播状态,views表示人气,这两个字段都是频繁更新,php定时脚本每两分钟更新一下这两个字段,这样就带来了该表频繁的update操作,非常影响性能,但是本人将is_live和、views独立出去后,由于本人要使用is_live和views排序,例如
select * from anchor order by is_live desc,views desc,那么之后就不得不使用关联查询来排序,本人想问一下这两种设计对于性能提升哪种更好?或大家有什么好的解决办法,谢谢了!
解决方案
1
才5个字段,假如都不是大型字段,一张表就行了。
具体的update 语句是什么?表设计中预计有多少记录?is_live占总记录的百分之多少?
具体的update 语句是什么?表设计中预计有多少记录?is_live占总记录的百分之多少?
1
glenshappy
本版等级:T1
结帖率:14.29%
本版等级:T1
结帖率:14.29%
没有查询条件,会导致严重的阻塞,虽然你的数据量还不大。
1
这种频繁的全表更新,最好是用内存数据库来实现,假如还用mysql的化,速度肯定没有那么快