mysql 索引查詢 、創建 create index 與 add index 的區別


1、索引查詢

------TABLE_SCHEMA  庫名;TABLE  表名

------AND UPPER(INDEX_NAME) != 'PRIMARY'  只查詢索引,不需要主鍵

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 'Show_Add_Indexes'
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = 'test'  and TABLE ='test_table'
AND UPPER(INDEX_NAME) != 'PRIMARY'
GROUP BY TABLE_NAME, INDEX_NAME
ORDER BY TABLE_NAME ASC, INDEX_NAME ASC;

 2、索引刪除

alter table table_name drop index index_name;

3、創建索引

alter table table_name add index_name using btree('column_name',...,'column_name');

create unique index index_name on table_name('column_name');

兩者區別:

(1)add index_name 支持一次多個索引創建alter table table_name add index_name using btree('column_name',...,'column_name'),add index_name using btree('column_name',...,'column_name')

(2)add index_name 可以創建 PRIMARY KEY

(3)create  index 創建時必須制定index_name,alter 可以使用默認名


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM