我正在尝试获取用户的所有订阅者
我的查询:
SELECT
COUNT(sub.id) as ids
FROM
subscribers as sub
WHERE
suid=541839243781
解释打印:
╔════╦═════════════╦═══════╦══════╦═══════════════ ╦═════╦═════════╦═══════╦═══════╦══════════════════════ ║ id ║ select_type ║ table ║ type ║ possible_keys ║ key ║ key_len ║ ref ║ rows ║ Extra ║ ╠════╬═════════════╬═══════╬══════╬═══════════════ ╬═════╬═════════╬═══════╬═══════╬══════════════════ ║ 1 ║ SIMPLE ║ sub ║ ref ║ i3 ║ i3 ║ 8 ║ const ║ 47890 ║ 使用索引 ║ ╚════╩═════════════╩═══════╩══════╩═══════════════ ╩═════╩═════════╩═══════╩═══════╩══════════════════
所以目前我得到的总数大约是48k
并且需要0.0333
加载......如果这上升到1m
或5m
?然后可能需要很长时间才能加载...
我在订阅者表上的索引是:
╔═════════════╦════════════╦═══════════════════╦══ ════════════╦═════════════╦═══════════╦═══════════ ══╦══════════╦════════╦══════╦════════════╦═══════ ══╗ ║ Table ║ Non_unique ║ Key_name ║ Seq_in_index ║ Column_name ║ Collation ║ Cardinality ║ Sub_part ║ Packed ║ Null ║ Index_type ║ Comment ║ ╠═════════════╬════════════╬═══════════════════╬══ ════════════╬═════════════╬═══════════╬═══════════ ══╬══════════╬════════╬══════╬════════════╬═══════ ══╣ ║ 订阅者 ║ 0 ║ PRIMARY ║ 1 ║ id ║ A ║ 60251 ║ NULL ║ NULL ║ ║ BTREE ║ ║ ║ 订阅者 ║ 1 ║ total_subscribers ║ 1 ║ id ║ A ║ 60251 ║ NULL ║ NULL ║ ║ BTREE ║ ║ ║ 订阅者 ║ 1 ║ total_subscribers ║ 2 ║ suid ║ A ║ 60251 ║ NULL ║ NULL ║ ║ BTREE ║ ║ ║ 订阅者 ║ 1 ║ i3 ║ 1 ║ suid ║ A ║ 6025 ║ NULL ║ NULL ║ ║ BTREE ║ ║ ║ 订阅者 ║ 1 ║ i3 ║ 2 ║ uid ║ A ║ 60251 ║ NULL ║ NULL ║ ║ BTREE ║ ║ ║ 订阅者 ║ 1 ║ i3 ║ 3 ║ id ║ A ║ 60251 ║ NULL ║ NULL ║ ║ BTREE ║ ║ ╚═════════════╩════════════╩═══════════════════╩══ ════════════╩═════════════╩═══════════╩═══════════ ══╩══════════╩════════╩══════╩════════════╩═══════ ══╝
那么我怎样才能使这个查询更有效率呢?