恰当了解Mysql中的列数据库索引和两列数据库索引

2021-03-17 15:40 jianzhan
Mysql数据信息库出示二种种类的数据库索引,假如没恰当设定,数据库索引的运用高效率会受到非常大影响却彻底不知道难题出在这里。 拷贝编码 编码以下: 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,

恰当了解Mysql中的列数据库索引和两列数据库索引

Mysql数据信息库出示二种种类的数据库索引,假如没恰当设定,数据库索引的运用高效率会受到非常大影响却彻底不知道难题出在这里。

拷贝编码 编码以下:

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)

);

之上建立的实际上是一个两列数据库索引,建立列数据库索引的编码以下:

拷贝编码 编码以下:

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)

);

一个两列数据库索引能够觉得是包括根据合拼(concatenate)数据库索引列值建立的值的一个排列数字能量数组。 当查寻句子的标准中包括last_name 和 first_name时,比如:

拷贝编码 编码以下:

SELECT * FROM test WHERE last_name='Kun' AND first_name='Li';

sql 会先过虑出last_name合乎标准的纪录,在其基本上在过虑first_name合乎标准的纪录。那假如大家各自在last_name和 first_name上建立2个列数据库索引,mysql的解决方法也不一样了,它会挑选一个最严苛的数据库索引来开展查找,能够了解为查找工作能力最強的哪个数据库索引来检 索,此外一个运用不了了,那样实际效果也不如两列数据库索引了。

可是两列数据库索引的运用也是必须标准的,下列方式的查寻句子可以运用上两列数据库索引:

拷贝编码 编码以下:

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';

下列方式的查寻句子运用不了两列数据库索引:

拷贝编码 编码以下:

SELECT * FROM test WHERE first_name='Michael';

SELECT * FROM test WHERE last_name='Widenius' OR first_name='Michael';

两列建数据库索引核对每一个列各自建数据库索引更有优点,由于数据库索引创建得越大就会越占硬盘室内空间,在升级数据信息的情况下速率会更慢。

此外创建两列数据库索引时,次序也是必须留意的,应当将严苛的数据库索引放到前边,那样挑选的幅度会更大,高效率高些。 共享到:
文中"恰当了解Mysql中的列数据库索引和两列数据库索引"由远航网站站长搜集梳理而成,仅作大伙儿学习培训与参照应用。大量网站建设实例教程尽在远航网站站长站。