Heim  >  Fragen und Antworten  >  Hauptteil

mysql - zig Millionen Daten-Paging. Wenn der Offset größer ist, wie kann die Geschwindigkeit optimiert werden?

Nehmen Sie MySQL als Beispiel: Wenn die Datenmenge relativ groß ist, ist der Offset beim Paging größer und die Abfrageeffizienz geringer

Wenn ein Beitrag beispielsweise 2 Millionen Kommentare enthält und auf jeder Seite 10 angezeigt werden, sind es 200.000 Seiten. Wie sollten die Daten verarbeitet werden, wenn 200.000 Seiten erfasst werden?

Beispiel: NetEase Music, die maximale Anzahl an Kommentaren für einen einzelnen Song beträgt mehr als 1,4 Millionen und die Paging-Geschwindigkeit wird sehr gut gehandhabt,

伊谢尔伦伊谢尔伦2712 Tage vor841

Antworte allen(2)Ich werde antworten

  • 给我你的怀抱

    给我你的怀抱2017-05-18 10:50:01

    第一我相信網易音樂讀取數據的方式絕對是使用nosql,去讀取數據。
    當然假如你的數據表訪問頻率不高的話,還是可以直接讀取數據庫,當然mysql innodb庫有個坑爹的弱點,就是你查詢頁數越大,所以的效果就越小。所以一般我們是通過id去提高查詢的效果
    舊的查詢用法 limit 100000,10 建議查詢用法 where id > 100000 limit 10。這樣可以保證到索引的使用。
    當然你可以使用分錶的形式,降低單表數據,從而提高查詢效率

    Antwort
    0
  • PHPz

    PHPz2017-05-18 10:50:01

    如果用redis的化应该是将id都存在list中,然后利用redis获得list的某个片段,然后拿片段里的ID到mysql去查询结果。

    当然如果你要加上排序的话就没辙了。

    Antwort
    0
  • StornierenAntwort