limit [offset,] rows
對於mysql自帶分頁方式的優化
建立模擬資料表以及模擬資料
-- 建立模擬資料sql
drop
table
ifexists student;
create
table
ifnot
exists student
( student_id int
notnull
auto_increment
primary
key,
student_name varchar(50
)not
null
)engine
=innodb
default
charset
= utf8;
drop
table
ifexists course;
create
table
ifnot
exists course
( course_id int
notnull
auto_increment
primary
key,
course_name varchar(10
)not
null
)engine
=innodb
default
charset
= utf8;
drop
table
ifexists studentcourse;
create
table
ifnot
exists sc
( sc_id int
notnull
auto_increment
primary
key,
student_id int
notnull
, course_id int
notnull
, score int
notnull
)engine
=innodb
default
charset
= utf8;
-- 以下資料表對應的資料記錄數
-- 10 course
-- 70,000 student
-- 700,000 studentcourse
-- 根據以上要求準備測試資料
insert
into course (course_id, course_name)
select
null
as course_id, concat(
'course'
, id)
as course_name
from information_schema.
`collations`
order
by id asc
limit0,
10;insert
into student (student_id, student_name)
select
null
as student_id,
''as student_name
from
(select
1as column_order_id
from information_schema.
`columns
`limit0,
3500
)as t
cross
join
(select
1as collation_order_id
from information_schema.
`columns
`limit0,
200)
as t2;
update student
set student_name = concat(
'student'
, student_id)
where student_name ='';
insert
into sc (sc_id, student_id, course_id, score)
select
null
as sc_id, t2.student_id, t.course_id, ceiling(rand()*
100)
as score
from course as t
cross
join student as t2;
select s.
*from
student s
inner
join sc sc
on sc.s_id = s.s_id
where sc.c_id=
1and sc.score=
100;
自帶的分頁查詢select s_id,sc_id,c_id,score from sc order
2.優化自帶分頁
可以清晰看到提公升的速度還是很快的為了證明不是快取的原因
連續執行n(n>2)次自帶的分頁語句:
結果表明不是因為快取造成的第二次查詢速度變快
mysql的分頁優化 mysql分頁優化
有個200多萬的使用者表,顯示列表時非常慢,查了一下原來使用了limit進行分頁。前幾頁用時很少 但是後面頁數就簡直不可忍了,實際的業務邏輯還有排序,就更慢了 試試用查詢時用帶索引的鍵來確定範圍。最大的id是103948598 時間和用limit比相差幾千倍啊!使用explain 檢視一下 mysq...
mysql 分頁優化 Mysql 查詢分頁優化
全表掃瞄,速度極慢 limit 語句的查詢時間與起始記錄的位置成正比 mysql 的 limit 語句是很方便,但是對記錄很多的表並不適合直接使用 建立測試表 drop table if exists t user create table test t user id int 10 unsigne...
mysql 分頁優化 MySQL分頁優化實驗與總結
前言 分頁的sql優化是日常開發中經常遇到的問題,筆者在此做乙個經驗總結,並附上相應的實驗過程。實驗準備 若不想親自實驗的,可以直接跳過這一節。但還是建議大家做一下實驗,眼見為實。1.安裝測試資料庫 本次實驗使用的資料是mysql官方提供的employee資料庫,mysql官方提供了一些測試資料庫,...