|
LZ的SQL问题,最大的问题出现在:OWNUNO字段的过滤性太差,只有18个,而SQL种除了出现此字段之外 还有一个:REMOVESTATUS='n' 条件
唯一想办法提供性能的办法就是,再创建一个索引:ALTER TABLE TLI_HOME_71 ADD INDEX idx_oNo_RStatus(OWNUNO,REMOVESTATUS);
然后这条SQL就可以利用索引覆盖的原理解决性能的问题。
另外唯一性索引创建也不对,组合索引的顺序应该是:(`DIRECTID`,`OWNUNO`) 而不是 (`OWNUNO`,`DIRECTID`)
因为字段DIRECTID的过滤性好,有利于减少数据的查找能力,因为唯一索引字段值发生变化都可能需要检查,为此必须修改下组合索引的顺序...
TIMELINE_ITEM_HOME_71 0 PRIMARY 1 TLID A 728085 \N \N BTREE
TIMELINE_ITEM_HOME_71 0 IDX_TLI_HOME_71_UNIQUE 1 OWNUNO A 18 \N \N BTREE
TIMELINE_ITEM_HOME_71 0 IDX_TLI_HOME_71_UNIQUE 2 DIRECTID A 728085 \N \N BTREE
TIMELINE_ITEM_HOME_71 1 IDX_TLI_HOME_71_CREATEDATE 1 CREATEDATE A 1309 \N \N BTREE |
|