欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL 中的 LIMIT 語句及基本用法

 更新時間:2025年04月16日 11:58:55   作者:BirdMan98  
LIMIT 語句用于限制查詢返回的行數(shù),常用于分頁查詢或取部分?jǐn)?shù)據(jù),提高查詢效率,這篇文章主要介紹了MySQL 中的 LIMIT 語句,需要的朋友可以參考下

MySQL 中的 LIMIT 語句

LIMIT 語句用于限制查詢返回的行數(shù),常用于分頁查詢或取部分?jǐn)?shù)據(jù),提高查詢效率。

1. LIMIT 語法

SELECT 列名1, 列名2, ...
FROM 表名
WHERE 條件
ORDER BY 排序字段
LIMIT 記錄數(shù) OFFSET 偏移量;

或:

SELECT 列名1, 列名2, ...
FROM 表名
WHERE 條件
ORDER BY 排序字段
LIMIT 偏移量, 記錄數(shù);

?? LIMIT 偏移量, 記錄數(shù)LIMIT 記錄數(shù) OFFSET 偏移量 作用相同。

2. LIMIT 基本用法

(1) 獲取前 N 行數(shù)據(jù)

SELECT * FROM users LIMIT 5;

返回表 users 的前 5 行數(shù)據(jù)。

(2) LIMIT 結(jié)合 ORDER BY

如果不排序,返回的數(shù)據(jù)可能不穩(wěn)定(順序不確定)。

SELECT * FROM users ORDER BY age DESC LIMIT 5;

先按 age 降序排序,再取前 5 行數(shù)據(jù)。

(3) LIMIT 進(jìn)行分頁查詢

如果要獲取第 11 到 20 條記錄

SELECT * FROM users ORDER BY id ASC LIMIT 10 OFFSET 10;

或:

SELECT * FROM users ORDER BY id ASC LIMIT 10, 10;

?? 等效于 LIMIT 10 OFFSET 10,其中:

  • 10偏移量(OFFSET),表示跳過前 10 條數(shù)據(jù)。
  • 10返回的行數(shù)(LIMIT)。

?? 分頁查詢公式

LIMIT 每頁條數(shù) OFFSET (當(dāng)前頁 - 1) * 每頁條數(shù);

例如:

  • 第 1 頁(前 10 條):LIMIT 10 OFFSET 0
  • 第 2 頁(第 11-20 條):LIMIT 10 OFFSET 10
  • 第 3 頁(第 21-30 條):LIMIT 10 OFFSET 20

3. LIMIT 結(jié)合 COUNT()

(1) 統(tǒng)計總記錄數(shù)

分頁時,通常要先獲取總記錄數(shù):

SELECT COUNT(*) FROM users;

?? COUNT(\*) 更快,不會忽略 NULL。

4. LIMIT 結(jié)合 RAND()(隨機(jī)取數(shù)據(jù))

如果想要隨機(jī)返回 3 條記錄

SELECT * FROM users ORDER BY RAND() LIMIT 3;

?? ? 注意

ORDER BY RAND() 性能較低,會對所有數(shù)據(jù)進(jìn)行排序再取值。

更高效的隨機(jī)查詢(適用于 id 遞增的數(shù)據(jù)表):

SELECT * FROM users WHERE id >= (SELECT FLOOR(RAND() * (SELECT MAX(id) FROM users))) LIMIT 3;

5. LIMIT 語句的性能優(yōu)化

(1) LIMIT OFFSET 可能導(dǎo)致性能下降

當(dāng) OFFSET 很大時:

SELECT * FROM users ORDER BY id LIMIT 10 OFFSET 100000;

MySQL 仍然會掃描 100000 行,然后丟棄前 100000 條數(shù)據(jù),只返回 10 條,影響性能。

優(yōu)化方法:用索引加條件替代 OFFSET

SELECT * FROM users WHERE id > 100000 ORDER BY id LIMIT 10;

?? 適用于 id 是自增主鍵的情況,查詢速度更快。

(2) LIMIT 結(jié)合 JOIN 可能引發(fā)性能問題

SELECT * FROM users JOIN orders ON users.id = orders.user_id ORDER BY users.id LIMIT 100000, 10;

?? 如果 users.id 沒有索引,查詢會很慢

優(yōu)化方法

SELECT users.* FROM users WHERE users.id > (SELECT id FROM users ORDER BY id LIMIT 100000, 1) ORDER BY users.id LIMIT 10;

找到偏移的起點(diǎn),再 LIMIT 取值,減少掃描行數(shù)

6. LIMIT 結(jié)合 GROUP BY

如果要獲取每個城市的前 3 名用戶

SELECT * FROM (    SELECT *, ROW_NUMBER() OVER (PARTITION BY city ORDER BY age DESC) AS rank    FROM users) AS temp WHERE rank <= 3;

?? ROW_NUMBER() 需要 MySQL 8.0+ 才支持。

7. LIMIT 結(jié)合 DISTINCT

如果要獲取唯一數(shù)據(jù)的前 5 條

SELECT DISTINCT city FROM users LIMIT 5;

?? LIMITDISTINCT 之后生效,只返回 5 個唯一的 city。

8. LIMIT 語句總結(jié)

用法語法示例說明
獲取前 N 行LIMIT 5取前 5 條數(shù)據(jù)
分頁查詢LIMIT 10 OFFSET 10取第 11-20 條數(shù)據(jù)
隨機(jī)取 N 條ORDER BY RAND() LIMIT 3隨機(jī)返回 3 條數(shù)據(jù)
統(tǒng)計總數(shù)SELECT COUNT(*) FROM users;獲取總記錄數(shù)
優(yōu)化大偏移WHERE id > (SELECT id FROM users LIMIT 100000, 1) LIMIT 10;避免 OFFSET 性能問題

?? 重點(diǎn)總結(jié)

  • LIMIT 限制查詢返回的行數(shù),用于分頁或取部分?jǐn)?shù)據(jù)。
  • LIMIT 偏移量, 行數(shù) 等價于 LIMIT 行數(shù) OFFSET 偏移量
  • ORDER BY + LIMIT 確保數(shù)據(jù)順序穩(wěn)定。ORDER BY RAND() 效率低,大數(shù)據(jù)表建議用更優(yōu)化的隨機(jī)查詢。
  • OFFSET 查詢效率低,建議用索引優(yōu)化查詢。

這樣,你的 LIMIT 查詢就會更快、更高效!??

到此這篇關(guān)于MySQL 中的 LIMIT 語句及基本用法的文章就介紹到這了,更多相關(guān)MySQL LIMIT 語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ADODB 入門

    ADODB 入門

    ADODB 入門...
    2006-12-12
  • Java連接Mysql 8.0.18版本的方法詳解

    Java連接Mysql 8.0.18版本的方法詳解

    這篇文章主要介紹了Java和Mysql 8.0.18版本的連接方式,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • MySQL性能突然下降的原因

    MySQL性能突然下降的原因

    這篇文章主要介紹了MySQL性能突然下降的原因,幫助大家更好的了解和維護(hù)數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-10-10
  • MySQL數(shù)據(jù)庫如何查看表占用空間大小

    MySQL數(shù)據(jù)庫如何查看表占用空間大小

    由于數(shù)據(jù)太大了,所以MYSQL需要瘦身,那前提就是需要知道每個表占用的空間大小,這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫如何查看表占用空間大小的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • MySql 8.0.16版本安裝提示已經(jīng)不使用“UTF8B3”而是使用“UTF8B4”問題

    MySql 8.0.16版本安裝提示已經(jīng)不使用“UTF8B3”而是使用“UTF8B4”問題

    這篇文章主要介紹了MySql 8.0.16版本安裝提示已經(jīng)不使用“UTF8B3”而是使用“UTF8B4”問題 ,需要的朋友可以參考下
    2019-07-07
  • MySQL 邏輯備份與恢復(fù)測試的相關(guān)總結(jié)

    MySQL 邏輯備份與恢復(fù)測試的相關(guān)總結(jié)

    數(shù)據(jù)庫邏輯備份就是備份軟件按照我們最初所設(shè)計的邏輯關(guān)系,以數(shù)據(jù)庫的邏輯結(jié)構(gòu)對象為單位,將數(shù)據(jù)庫中的數(shù)據(jù)按照預(yù)定義的邏輯關(guān)聯(lián)格式一條一條生成相關(guān)的文本文件,以達(dá)到備份的目的。本文將具體介紹MySQL 邏輯備份的相關(guān)概念及如何做恢復(fù)測試。
    2021-05-05
  • mysql中json基礎(chǔ)查詢詳解(附圖文)

    mysql中json基礎(chǔ)查詢詳解(附圖文)

    MySQL提供了一些函數(shù)來對JSON數(shù)據(jù)進(jìn)行操作,下面這篇文章主要給大家介紹了關(guān)于mysql中json基礎(chǔ)查詢的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • 從MySQL得到最大的優(yōu)化性能

    從MySQL得到最大的優(yōu)化性能

    從MySQL得到最大的優(yōu)化性能...
    2006-11-11
  • MySQL SUM()帶條件的求和方法與多條件的求和方法解讀

    MySQL SUM()帶條件的求和方法與多條件的求和方法解讀

    這篇文章主要介紹了MySQL SUM()帶條件的求和方法與多條件的求和方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • MySQL中LIKE運(yùn)算符的多種使用方式及示例演示

    MySQL中LIKE運(yùn)算符的多種使用方式及示例演示

    無論是簡單的模式匹配還是復(fù)雜的模式匹配,LIKE運(yùn)算符都提供了強(qiáng)大的功能來滿足不同的匹配需求,通過本文的介紹,我們詳細(xì)了解了在MySQL數(shù)據(jù)庫中使用LIKE運(yùn)算符進(jìn)行模糊匹配的多種方式,感興趣的朋友跟隨小編一起看看吧
    2023-07-07

最新評論