第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

一個(gè)文章表的 MySQL 索引怎么建立合理

一個(gè)文章表的 MySQL 索引怎么建立合理

PHP
繁華開滿天機(jī) 2019-03-06 14:19:19
有如下結(jié)構(gòu)的MySQL 表 CREATE TABLE `t_article` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `content` varchar(255) NOT NULL COMMENT '內(nèi)容', `like_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '點(diǎn)贊數(shù)', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='文章表'; 插入數(shù)據(jù): INSERT INTO `t_article` (`id`, `content`, `like_count`) VALUES ('1', 'aaa', '4'); INSERT INTO `t_article` (`id`, `content`, `like_count`) VALUES ('2', 'rrrr', '53'); INSERT INTO `t_article` (`id`, `content`, `like_count`) VALUES ('3', 'ttt', '7'); INSERT INTO `t_article` (`id`, `content`, `like_count`) VALUES ('4', 'rree', '6'); INSERT INTO `t_article` (`id`, `content`, `like_count`) VALUES ('5', 'rrr', '888'); 需求是查詢文章列表,根據(jù)點(diǎn)贊數(shù)(like_count)字段從大到小排序,SQL 語(yǔ)句如下: SELECT id FROM t_article ORDER BY like_count DESC LIMIT 0,4; 怎么建立索引才合理,問(wèn)題原由是看了很多大佬文章都會(huì)說(shuō)索引字段不應(yīng)該頻繁更新,但是 like_count 這個(gè)字段肯定是經(jīng)常更新的, 另外還有個(gè)衍生問(wèn)題,如下SQL 執(zhí)行的分析 type 為 index 有沒(méi)有毛病,這個(gè)SQL沒(méi)有用 where 條件,沒(méi)有用 排序字段,但是還是會(huì)進(jìn)行全表掃描,又該怎么優(yōu)化呢 SELECT id FROM t_article LIMIT 0,4; EXPLAIN 分析
查看完整描述

3 回答

?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊

至于索引字段是否可以頻繁修改的問(wèn)題, 也要看數(shù)據(jù)量的大小, 如果你的數(shù)據(jù)量不是很大(如只有幾十萬(wàn)),則完全不用考慮這個(gè)問(wèn)題. 很多問(wèn)題都可以等到數(shù)據(jù)量大到一定程序再回來(lái)解決, 因?yàn)檫^(guò)度設(shè)計(jì)真是很浪費(fèi).

查詢一定要有排序字段, 否則結(jié)果順序不可以預(yù)知. 有了排序字段, 也會(huì)用上合適的索引.
參見這個(gè)答案

查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
縹緲止盈

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊

首先 你可以考慮下你這樣的表是否有問(wèn)題?只記錄點(diǎn)贊數(shù)你如何保證每個(gè)用戶只點(diǎn)贊一次?
好吧 我們假設(shè)你有另外一個(gè)點(diǎn)贊表 然后這里也同步更新好了 那么它是否適合做索引?
那就取決于你對(duì)這個(gè)查詢到底有多頻繁?如果頻繁查詢還是要建索引的,哪怕頻繁更新對(duì)索引維護(hù)有一定影響(其實(shí)有change_buffer在效率也還好啦)
最后你的那個(gè)SQL語(yǔ)句用的是聚集索引,也就是主鍵的那個(gè)索引

查看完整回答
反對(duì) 回復(fù) 2019-03-18
?
UYOU

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊

SELECT id FROM t_article WHERE id > 10000 ORDER BY like_count DESC LIMIT 0,4;
只會(huì)走id上的索引,即使有id和like_count的聯(lián)合索引,也是忽略like_count列的索引了

查看完整回答
反對(duì) 回復(fù) 2019-03-18
  • 3 回答
  • 0 關(guān)注
  • 542 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)