Why the return result is different only when I enable readyonly for this DB?
Technically, it is because when the database is readonly, SQL Server can use an IAM (IAM = Index Allocation Map) scan instead of following the clustered index.
But the question is kind of funny. "Why do you sometimes give me the red one and sometimes when I have said that I don't care which one I get?".