日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

正確理解Mysql中的列索引和多列索引_MySQL教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦:如何通過(guò)配置自動(dòng)實(shí)現(xiàn)ValueList中hql語(yǔ)句的整型參數(shù)轉(zhuǎn)換
通過(guò)valuelist的queryMap傳遞過(guò)來(lái)的參數(shù)默認(rèn)都為string類型,在valuelist配置文件的hql中,如果直接將該值賦給整型的字段會(huì)報(bào)錯(cuò)。一般我們會(huì)在hql中利用轉(zhuǎn)型函數(shù)來(lái)進(jìn)行處理,如下: 復(fù)制代碼 代碼如下: entry key=areasInfoAdapter bean parent=abstractHibernate30Ada

Mysql數(shù)據(jù)庫(kù)提供兩種類型的索引,如果沒(méi)正確設(shè)置,索引的利用效率會(huì)大打折扣卻完全不知問(wèn)題出在這。

復(fù)制代碼 代碼如下:
CREATE TABLE test (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
PRIMARY KEY (id),
INDEX name (last_name,first_name)
);


以上創(chuàng)建的其實(shí)是一個(gè)多列索引,創(chuàng)建列索引的代碼如下:

復(fù)制代碼 代碼如下:
CREATE TABLE test (
id INT NOT NULL,
last_name CHAR(30) NOT NULL,
first_name CHAR(30) NOT NULL,
PRIMARY KEY (id),
INDEX name (last_name),
INDEX_2 name (first_name)
);


一個(gè)多列索引可以認(rèn)為是包含通過(guò)合并(concatenate)索引列值創(chuàng)建的值的一個(gè)排序數(shù)組。 當(dāng)查詢語(yǔ)句的條件中包含last_name 和 first_name時(shí),例如:

復(fù)制代碼 代碼如下:
SELECT * FROM test WHERE last_name='Kun' AND first_name='Li';


sql 會(huì)先過(guò)濾出last_name符合條件的記錄,在其基礎(chǔ)上在過(guò)濾first_name符合條件的記錄。那如果我們分別在last_name和 first_name上創(chuàng)建兩個(gè)列索引,mysql的處理方式就不一樣了,它會(huì)選擇一個(gè)最嚴(yán)格的索引來(lái)進(jìn)行檢索,可以理解為檢索能力最強(qiáng)的那個(gè)索引來(lái)檢 索,另外一個(gè)利用不上了,這樣效果就不如多列索引了。

但是多列索引的利用也是需要條件的,以下形式的查詢語(yǔ)句能夠利用上多列索引:

復(fù)制代碼 代碼如下:
SELECT * FROM test WHERE last_name='Widenius';
SELECT * FROM test WHERE last_name='Widenius' AND first_name='Michael';
SELECT * FROM test WHERE last_name='Widenius' AND (first_name='Michael' OR first_name='Monty');
SELECT * FROM test WHERE last_name='Widenius' AND first_name >='M' AND first_name < 'N';


以下形式的查詢語(yǔ)句利用不上多列索引:

復(fù)制代碼 代碼如下:
SELECT * FROM test WHERE first_name='Michael';
SELECT * FROM test WHERE last_name='Widenius' OR first_name='Michael';


多列建索引比對(duì)每個(gè)列分別建索引更有優(yōu)勢(shì),因?yàn)樗饕⒌迷蕉嗑驮秸即疟P空間,在更新數(shù)據(jù)的時(shí)候速度會(huì)更慢。
另外建立多列索引時(shí),順序也是需要注意的,應(yīng)該將嚴(yán)格的索引放在前面,這樣篩選的力度會(huì)更大,效率更高。

分享:Mysql建表與索引使用規(guī)范詳解
本篇文章是對(duì)Mysql建表和索引使用規(guī)范進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下 一、 MySQL建表,字段需設(shè)置為非空,需設(shè)置字段默認(rèn)值。 二、 MySQL建表,字段需NULL時(shí),需設(shè)置字段默認(rèn)值,默認(rèn)值不為NULL。 三、 MySQL建表,如果字段等價(jià)于外鍵,應(yīng)在該字段加索引。 四

來(lái)源:模板無(wú)憂//所屬分類:MySQL教程/更新時(shí)間:2013-07-01
相關(guān)MySQL教程