題記
—— 執劍天涯,從你的點滴積累開始,所及之處,必精益求精,
【x1】點擊查看提示
【x2】各種系列的教程
【x3】視頻教程分析
最侄訓是通過 索引方式來優化的
需要注意 千萬級資料 還不可使用本方案,還需要優化
現有一張表 question_wrong 中存有 369 7895 條資料,
現在的需求是從這 369 7895 條資料中 篩選查詢出當日的資料,
1 首先查看下表資料
查詢前10000 條資料結果如下圖所示,耗時 0.54 秒,
select * from question_wrong limit 10000

本文章測驗用例在 2020-09-24 這一日執行操作,查詢當日時間,
2 最終實踐測驗結果
最終實踐的結果是為查詢時間欄位添加索引實作快速查詢,如下可行 sql
# 查詢方式一 添加索引前 3.24 3.76
# 添加索引后 查詢時間為 0 秒
SELECT
*
FROM
question_wrong
WHERE
create_time BETWEEN CONCAT(curdate() , ' 00:00:00')
AND CONCAT(CURDATE() , ' 23:59:59')
# 查詢方式六 添加索引前1.63 1.61
# 添加索引后 查詢時間為 0 秒
SELECT
*
FROM
question_wrong
WHERE
create_time >= '2020-09-24'
AND create_time < '2020-09-25'
# 查詢方式三 添加索引前 1.74 1.77
# 添加索引后 查詢時間為 0 秒
SELECT
*
FROM
question_wrong
WHERE
create_time BETWEEN '2020-09-24 00:00:00'
AND '2020-09-24 23:59:59';
為表 question_wrong 中的時間欄位 create_time 添加索引如下:
#添加索引
ALTER TABLE `question_wrong` ADD INDEX create_time_index ( `create_time` )
查詢結果如下圖所示:

3 燒腦實踐
以下三種方式上百萬資料以上不可使用,
# 查詢方式二 耗時 2.05
SELECT
*
FROM
question_wrong
WHERE
DATE_FORMAT(create_time , '%Y-%m-%d') = '2020-09-24';
# 查詢方式四 耗時 1.58 1.60 x
SELECT
*
FROM
question_wrong
WHERE
to_days(create_time) = to_days(now());
# 查詢方式五 耗時 1.68 1.69 x
SELECT
*
FROM
question_wrong
WHERE
date(create_time) = curdate();
curdate() 函式回傳當前的日期
date() 函式回傳當前時間的日期部分
完畢
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/132000.html
標籤:其他
下一篇:利用HikariCP大幅提升性能
