1
學習MySQL(innodb)我試圖用3個表編寫一個twitter應用程序:users2,follow2和tweets2。MySQL優化 - 遍歷WHERE foo IN子選擇的整個表?
做一個解釋如下顯示可能被觸摸的tweets2中的所有行。這是否準確?如果你打算做一個WHERE用戶名IN(select),我會假定給定的用戶名是索引的。MySQL將檢索子選擇子句並直接轉到tweets2中有這些用戶名的行。
explain select username, timestamp, tweet
from tweets2
where username in
(select followee from follow2 where follower='user1')
order by timestamp desc;
繼承人的SQLAlchemy的代碼創建表:
users = Table('users2', metadata,
Column('username', String(16), index=True),
Column('email', String(256)),
)
follow = Table('follow2', metadata,
Column('follower', String(16), index=True),
Column('followee', String(16), index=True),
)
tweets = Table('tweets2', metadata,
Column('id', Integer, primary_key=True),
Column('username', String(16), index=True),
Column('timestamp', BigInteger),
Column('tweet', String(200)),
)