Mysql 索引遷移策略

2022-02-11 10:21:17 字數 2145 閱讀 6473

mysql 索引遷移策略

近日在核查專案中的一些慢sql時發現乙個很雞仔兒的問題,本地開發庫表中索引跟生產上差距很大,又因為生產庫登入各種麻煩,需要各種驗證碼,那麼多的慢sql分給好些個人,不可能讓大家一人登一次資料庫,所以就有了這個索引遷移的問題,其實就是把生產的庫表的索引同步到本地庫。針對這一問題,經過查閱各種資料得出以下的解決策略。

1.索引匯出

第一步就是將生產庫中的索引導出來,這裡的匯出的索引不應該包含主鍵約束,任何一張表在建立時按照規定都是會加主鍵的,所以這裡沒有必要。以下就是匯出mysql指定資料庫除主鍵的所有索引的sql。

select

concat(

'alter table `',

table_name,

'add ',

if (

non_unique = 1,

case upper(index_type)

when 'fulltext' then

'fulltext index'

when 'spatial' then

'spatial index'

else

concat(

'index `',

index_name,

'` using ',

index_type

end,

if (

upper(index_name) = 'primary',

concat(

'primary key using ',

index_type

concat(

'unique index `',

index_name,

'` using ',

index_type

group_concat(

distinct concat('`', column_name, '`')

order by

seq_in_index asc separator ', '

) as 'all table index'

from

information_schema.statistics

where

table_schema = 'test'

and upper(index_name) != 'primary'

group by

table_name,

index_name

order by

table_name asc,

index_name asc

注意:複製sql時記得更改資料庫名 以上標紅的 test 是我本地庫。

2.索引刪除

匯出生產索引後,將指令碼儲存,接下來就要執行本地庫的索引刪除了,這裡的刪除索引也需要先構建出刪除索引的alter語句。

select

concat(

'alter table `',

table_name,

group_concat(

distinct concat(

'drop ',

if (

upper(index_name) = 'primary',

'primary key',

concat('index `', index_name, '`')

) separator ', '

from

information_schema.statistics

where

table_schema ='test'

and upper(index_name) != 'primary'

group by

table_name

order by

table_name asc

以上sql是刪除表中不包含主鍵的索引

注意資料庫的名稱一定不要搞反了。

3.索引插入

先執行第二步的得到的指令碼,再執行第一步的指令碼。

MySQL 索引策略

索引 index 是幫助mysql高效獲取資料的資料結構,這種資料結構是需要額外的寫入和儲存為代價來提高表上資料檢索的速度。一旦建立了索引後,資料庫中查詢優化器使用索引來快速定位資料,然後就無需掃瞄表中給定查詢的每一行了。索引本身也很大,不可能全部儲存在記憶體中,一般以索引檔案的形式儲存在磁碟上。當...

mysql索引設計策略 MySQL索引設計一些策略

前言 索引加快了檢索的速度,但是卻降低了資料列裡插入 刪除以及修改數值的速度。也就是說,索引降低了許多涉及寫入的操作速度。之所以出現這種情況,是由於寫入一條資料不僅僅是要寫入到資料行,還需要所有的索引都作出相應的改變如更新或是重新編排。mysql在為檢索生成乙個執行方案時候,要仔細對索引進行計算,建...

MySQL索引優化策略分析

explain的用法 執行計畫 explain select from pms product where id 1 組合索引一定是最左匹配原則 如果你在表上建立了很多組合索引,索引檔案膨脹,修改 刪除 更新會比較慢expalin的作用 type 查詢的效果從上到下越來越差 優勢 提高查詢速度 表連...