mysql怎么調(diào)節(jié)索引 mysql 索引修改

MySQL中如何設(shè)置唯一索引,聯(lián)合索引?

1.UNIQUE 關(guān)鍵字建唯一索引

創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比河南網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式河南網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋河南地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。

mysql CREATE TABLE `wb_blog` (

- `id` smallint(8) unsigned NOT NULL,

- `catid` smallint(5) unsigned NOT NULL DEFAULT '0',

- `title` varchar(80) NOT NULL DEFAULT '',

- `content` text NOT NULL,

- PRIMARY KEY (`id`),

- UNIQUE KEY `catename` (`catid`)

- ) ;

如果建好表了,可以用以下語(yǔ)句建

mysql CREATE UNIQUE INDEX catename ON wb_blog(catid);

2.聯(lián)合索引

ALTER TABLE `tasks`

ADD INDEX `testabc` (`title`, `created`) ;

3聯(lián)合唯一索引(假設(shè)有這個(gè)需求,在同一天內(nèi)不能建兩個(gè)tiltle一樣的任務(wù))

ALTER TABLE `tasks`

ADD UNIQUE INDEX `testabc` (`title`, `created`) ;

數(shù)據(jù)庫(kù)建索引的科學(xué)性事關(guān)數(shù)據(jù)庫(kù)性能,索引也不是越多越好。

MYSQL數(shù)據(jù)庫(kù)索引怎么設(shè)置

所列三張表只是主外鍵查詢問(wèn)題,

那每張表的主鍵分別都要建索引(文章ID、分類ID、用戶ID),

第一張表由于要分類關(guān)聯(lián)查詢、按編輯用戶查詢,所以引用鍵也要分別建索引(分類ID、用戶ID)。

mysql怎么設(shè)計(jì)索引

1.添加PRIMARY KEY(主鍵索引)

mysqlALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

2.添加UNIQUE(唯一索引)

mysqlALTER TABLE `table_name` ADD UNIQUE (

`column`

)

3.添加INDEX(普通索引)

mysqlALTER TABLE `table_name` ADD INDEX index_name ( `column` )

4.添加FULLTEXT(全文索引)

mysqlALTER TABLE `table_name` ADD FULLTEXT ( `column`)

5.添加多列索引

mysqlALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

如何理解并正確使用MySQL索引

MySQL索引類型包括:

(1)普通索引

這是最基本的索引,它沒(méi)有任何限制。它有以下幾種創(chuàng)建方式:

◆創(chuàng)建索引

CREATE INDEX indexName ON mytable(username(length)); 如果是CHAR,VARCHAR類型,length可以小于字段實(shí)際長(zhǎng)度;如果是BLOB和TEXT類型,必須指定 length,下同。

◆修改表結(jié)構(gòu)

ALTER mytable ADD INDEX [indexName] ON (username(length))

◆創(chuàng)建表的時(shí)候直接指定

CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) ); 刪除索引的語(yǔ)法:

DROP INDEX [indexName] ON mytable;

(2)唯一索引

與前面的普通索引類似,不同的就是:索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。它有以下幾種創(chuàng)建方式:

◆創(chuàng)建索引

CREATE UNIQUE INDEX indexName ON mytable(username(length))

◆修改表結(jié)構(gòu)

ALTER mytable ADD UNIQUE [indexName] ON (username(length))

◆創(chuàng)建表的時(shí)候直接指定

CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)) );

(3)主鍵索引

它是一種特殊的唯一索引,不允許有空值。一般是在建表的時(shí)候同時(shí)創(chuàng)建主鍵索引:

CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, PRIMARY KEY(ID) ); 當(dāng)然也可以用 ALTER 命令。記?。阂粋€(gè)表只能有一個(gè)主鍵。

(4)組合索引

為了形象地對(duì)比單列索引和組合索引,為表添加多個(gè)字段:

CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, city VARCHAR(50) NOT NULL, age INT NOT NULL ); 為了進(jìn)一步榨取MySQL的效率,就要考慮建立組合索引。就是將 name, city, age建到一個(gè)索引里:

ALTER TABLE mytable ADD INDEX name_city_age (name(10),city,age); 建表時(shí),usernname長(zhǎng)度為 16,這里用 10。這是因?yàn)橐话闱闆r下名字的長(zhǎng)度不會(huì)超過(guò)10,這樣會(huì)加速索引查詢速度,還會(huì)減少索引文件的大小,提高INSERT的更新速度。

如果分別在 usernname,city,age上建立單列索引,讓該表有3個(gè)單列索引,查詢時(shí)和上述的組合索引效率也會(huì)大不一樣,遠(yuǎn)遠(yuǎn)低于我們的組合索引。雖然此時(shí)有了三個(gè)索引,但MySQL只能用到其中的那個(gè)它認(rèn)為似乎是最有效率的單列索引。

當(dāng)前標(biāo)題:mysql怎么調(diào)節(jié)索引 mysql 索引修改
文章鏈接:http://muchs.cn/article8/dogiiop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、外貿(mào)網(wǎng)站建設(shè)、域名注冊(cè)、網(wǎng)站營(yíng)銷、用戶體驗(yàn)、定制開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)