Mysql

來自此模式的查詢性能

  • April 18, 2020

基本上所有的評論都儲存在這個模式中(dbml)

table comments {
 commentID BINARY(16) [not null] //UUID
 post_date timestamp
 postID BINARY(16) [not null] //UUID
 has_reply bool [default: false]
 // replyTo either points to commentID, or null
 // Essentially won't be loaded as a 'root' comment
 reply_to varchar [default: null]
 comment_content varchar [not null]
 // dislikes will decrease, likes increase
 likes int [default: 0]
 visible bool [default: true]
}

當使用者瀏覽文章時,基本上數據庫將被查詢如下 SELECT * FROM foo.comments WHERE postID = "ID of the post the USER is currently on" LIMIT 0, 20

由於這種設置,我意識到這張表會變得非常大,可以容納所有評論。一段時間後(雄心勃勃地說)100 萬條評論被創建。mariaDB 將如何處理這個問題?它會非常慢嗎,如果是這樣,應該如何建模?

WHERE 子句能否讓我免於性能問題?

什麼是PRIMARY KEY桌子?可能commentID每一行都是獨一無二的?如果是這樣,請添加PRIMARY KEY(commentID).

對於WHERE postID = "...",您應該添加INDEX(postID). *即使是十億行,*這也將使查詢速度更快。

閱讀“索引”(又名“鍵”)。

引用自:https://dba.stackexchange.com/questions/262827