偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

 [[336448]]

介紹

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

使用書簽

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

如下面語(yǔ)句

  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為上次分頁(yè)后的最大值,注意這種場(chǎng)景只適用于不存在重復(fù)值的場(chǎng)景。

延遲關(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上面有索引。這樣每次查詢的時(shí)候,會(huì)先從name索引列上找到id值,然后回表,查詢到所有的數(shù)據(jù)??梢钥吹接泻芏嗷乇砥鋵?shí)是沒有必要的。完全可以先從name索引上找到id(注意只查詢id是不會(huì)回表的,因?yàn)榉蔷奂饕习闹禐樗饕兄岛椭麈I值,相當(dāng)于從索引上能拿到所有的列值,就沒必要再回表了),然后再關(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ù)最后一頁(yè),offset可能回非常大

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

改成倒序分頁(yè),效率是不是快多了?

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

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

 

責(zé)任編輯:武曉燕 來(lái)源: Java識(shí)堂
相關(guān)推薦

2012-04-25 09:24:17

Java

2022-09-01 08:42:36

SQL數(shù)據(jù)項(xiàng)目

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寫入點(diǎn)LSN

2025-03-31 01:55:00

2020-11-18 07:51:15

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

2020-06-15 08:54:46

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

2015-10-28 10:17:22

Html5前端優(yōu)化

2021-11-22 10:38:23

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

2021-02-07 09:01:10

Java并發(fā)編程

2019-09-11 10:12:12

華為

2021-09-29 11:30:01

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

2021-02-09 17:21:55

SQL數(shù)據(jù)庫(kù)存儲(chǔ)

2013-12-16 10:59:52

WiFi上鎖WiFi被盜

2015-05-08 11:23:41

谷歌IO大會(huì)
點(diǎn)贊
收藏

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