午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術文章
文章詳情頁

mysql索引 - mysql的表如何重新組織(或生成)索引?

瀏覽:209日期:2022-06-12 17:06:01

問題描述

1,背景描述我有一個user表,表結構如下:mysql索引 - mysql的表如何重新組織(或生成)索引?索引如下:mysql索引 - mysql的表如何重新組織(或生成)索引?表中數據如下:mysql索引 - mysql的表如何重新組織(或生成)索引?

可以看到表中數據是按lastname排序的,這是因為在lastname, familyname, city上有一個多列索引,userid上的主鍵(索引)是后加的,所以userid是無序的。mysql當中有沒有一種方法可以重新生成(或組織)索引,讓select userid, lastname from user這條語句的查詢結果默認是按userid排序?

注意:不是強制使用索引select userid, lastname, from user force index(primary),而是重新生成或組織索引(reorganize)。

4月29日更新

其實,我這里是想問mysql是不是有某個命令可以對表中已有的索引進行重新組織,就是在表經過一段時間的更新、刪除、插入操作后,數據會發生變化(結構不變),那么表的索引也就相應的會發生各種變化(比如底層的碎片等),那么是不是有一種方法可以對這些索引重新組織或者重新生成,再不然就只能刪除索引再重建索引。

5月2日更新我把最初提問的問題增加了刪除線,開始的提問有些問題,特別是這兒的描述是錯誤的:“可以看到表中數據是按lastname排序的,這是因為在lastname, familyname, city上有一個多列索引,userid上的主鍵(索引)是后加的,所以userid是無序的可以看到表中數據是按lastname排序的,這是因為在lastname, familyname, city上有一個多列索引,userid上的主鍵(索引)是后加的,所以userid是無序的”,至于為什么是無序的,@clcx_1315已經回答了,而且他也指出即便重新組織(生成)索引,這句select userid, lastname from user也是無法實現讓userid有序的。我百度了下,mysql當中好像沒有專門用于重新生成或組織索引的命令,sql server數據庫倒是有,感興趣的朋友百度吧。

問題解答

回答1:

mysql有optimize table的用法,但是同時也把表重組了。如果系統有明顯的業務低峰期,刪掉索引重建也是可以的。

回答2:

這種情況是因為你主鍵外的其他列是一個復合索引,你查詢的時候mysql就直接走索引表找到你的所有數據(mysql innodb普通索引會將主鍵信息一并存儲),所以就是按照你索引首字段排序檢索,他并不是按照錄入磁盤順序讀取全表的,而主鍵則是按照磁盤錄入順序添加的,因此在磁盤上是順序的,但是你讀取的時候讀的是索引表才會是不連續的要改變這種狀況的話你重建表也是一樣的,仍然會按lastname得索引排序,除非你按照lastname的順序錄入另外一個辦法就是添加一個冗余字段,這時候再select全表的時候就不會走你的覆蓋索引查詢而是走全表掃描,當然就會主鍵漸順序排列了。

回答3:

我記得mysql也會根據你的索引情況自動對索引進行重建,具體根據什么也沒查到。留待有緣人解答

相關文章:
主站蜘蛛池模板: 青草草在线视频 | 日韩欧美一区二区三区四区 | 国产福利视频一区二区 | 日韩欧美黄色片 | 日本黄色免费视频 | 老司机伊人 | 久操国产| 成人午夜小视频 | 最新不卡av | 国内成人在线 | 欧美激情免费看 | 欧美另类在线视频 | 欧美一级性生活视频 | 久久最新免费视频 | 午夜影院操 | 亚洲aaa| 成人高清 | 成人免费视频一区二区三区 | 欧美国产中文字幕 | 亚洲国产精品成人综合色在线婷婷 | 国产精品视频在线观看 | 九九一级片 | 91狠狠综合久久久久久 | 国产一区二区精品在线 | 国产一区a| 国产有码在线 | 久久成年人视频 | 久草网在线观看 | 国产又黄又猛又粗又爽 | 精品国产一区二区三区久久久蜜月 | 欧美a免费 | 中文字幕在线观看一区二区 | 欧美大片免费观看 | 久久国产精品无码网站 | 国产成人久久久 | 97超碰97| 四季av一区二区凹凸精品 | 福利社午夜影院 | 亚洲国产精品久久久久久 | 色综合综合色 | 99精品毛片 |