自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一張千萬級別數(shù)據(jù)的表想做分頁,如何優(yōu)化?

數(shù)據(jù)庫 MySQL
當進行分頁時,MySQL 并不是跳過 offset 行,而是取 offset+N 行,然后放棄前 offset 行,返回 N 行。例如 limit 10000, 20。

 [[336448]]

介紹

當進行分頁時,MySQL 并不是跳過 offset 行,而是取 offset+N 行,然后放棄前 offset 行,返回 N 行。例如 limit 10000, 20。mysql排序取出10020條數(shù)據(jù)后,僅返回20條數(shù)據(jù),查詢和排序的代價都很高。那當 offset 特別大的時候,效率就非常的低下,所以我們要對sql進行改寫

使用書簽

用書簽記錄上次取數(shù)據(jù)的位置,過濾掉部分數(shù)據(jù)

如下面語句

  1. SELECT id, name, description FROM film ORDER BY name LIMIT 1000, 10; 

可以改為

  1. SELECT id, name, description FROM film WHERE name > 'begin' ORDER BY name LIMIT 10; 

name為上次分頁后的最大值,注意這種場景只適用于不存在重復值的場景。

延遲關(guān)聯(lián)

延遲關(guān)聯(lián):通過使用覆蓋索引查詢返回需要的主鍵,再根據(jù)主鍵關(guān)聯(lián)原表獲得需要的數(shù)據(jù)

  1. SELECT id, name, description FROM film ORDER BY name LIMIT 100,5; 

id是主鍵值,name上面有索引。這樣每次查詢的時候,會先從name索引列上找到id值,然后回表,查詢到所有的數(shù)據(jù)??梢钥吹接泻芏嗷乇砥鋵嵤菦]有必要的。完全可以先從name索引上找到id(注意只查詢id是不會回表的,因為非聚集索引上包含的值為索引列值和主鍵值,相當于從索引上能拿到所有的列值,就沒必要再回表了),然后再關(guān)聯(lián)一次表,獲取所有的數(shù)據(jù)

因此可以改為

  1. SELECT film.id, name, description FROM film  
  2. JOIN (SELECT id from film ORDER BY name LIMIT 100,5) temp 
  3. ON film.id = temp.id 

倒序查詢

假如查詢倒數(shù)最后一頁,offset可能回非常大

  1. SELECT id, name, description FROM film ORDER BY name LIMIT 100000, 10; 

改成倒序分頁,效率是不是快多了?

  1. SELECT id, name, description FROM film ORDER BY name DESC LIMIT 10; 

本文轉(zhuǎn)載自微信公眾號「Java識堂」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Java識堂公眾號。 

 

責任編輯:武曉燕 來源: Java識堂
相關(guān)推薦

2012-04-25 09:24:17

Java

2022-09-01 08:42:36

SQL數(shù)據(jù)項目

2024-02-05 13:28:00

Excel優(yōu)化服務(wù)器

2023-06-29 08:22:43

數(shù)據(jù)Excel模板

2022-11-17 12:09:51

2024-10-28 10:50:33

2020-09-01 17:19:36

數(shù)據(jù)監(jiān)控建模

2021-02-02 21:50:31

MySQL 8.0ExcelMySQL 5.7

2023-12-07 07:46:21

MySQL寫入點LSN

2025-03-31 01:55:00

2020-06-15 08:54:46

架構(gòu)圖 EA業(yè)務(wù)建模

2020-11-18 07:51:15

MySQL數(shù)據(jù)查詢

2015-10-28 10:17:22

Html5前端優(yōu)化

2021-11-22 10:38:23

架構(gòu)運維技術(shù)

2021-02-07 09:01:10

Java并發(fā)編程

2019-09-11 10:12:12

華為

2013-12-16 10:59:52

WiFi上鎖WiFi被盜

2021-09-29 11:30:01

大數(shù)據(jù)技術(shù)架構(gòu)

2021-02-09 17:21:55

SQL數(shù)據(jù)庫存儲

2015-05-08 11:23:41

谷歌IO大會
點贊
收藏

51CTO技術(shù)棧公眾號