MYSQL 关于索引的部分问题!

1、

PRIMARY KEY也可以只指定为KEY。这么做的目的是与其它数据库系统兼容、二来key 是index的同意词!

2、

在UNIQUE索引中,所有的值必须互不相同。如果您在添加新行时使用的关键字与原有行的关键字相同,则会出现错误。

例外情况是,如果索引中的一个列允许包含NULL值,则此列可以包含多个NULL值。此例外情况不适用于BDB表。

在BDB中,带索引的列只允许一个单一NULL。

3、

PRIMARY KEY是一个唯一KEY,此时,所有的关键字列必须定义为NOT NULL。如果这些列没有被明确地定义为NOT NULL,

MySQL应隐含地定义这些列。一个表只有一个PRIMARY KEY。如果您没有PRIMARY KEY并且一个应用程序要求在表中使用PRIMARY KEY,

则MySQL返回第一个UNIQUE索引

4、

在已创建的表中,PRIMARY KEY的位置最靠前,然后是所有的UNIQUE索引,然后是非唯一索引。这可以帮助MySQL优化程序选择优先使用哪个索引,

并且更快速的检测出重复的UNIQUE关键字。

5、

创建特殊的FULLTEXT索引,用于全文搜索。只有MyISAM表类型支持FULLTEXT索引。FULLTEXT索引只可以从CHAR, VARCHAR和TEXT列中创建。

整个列都会被编入索引;不支持对部分列编索引。如果已指定,前缀长度会被忽略。

时间: 2024-10-20 15:41:08

MYSQL 关于索引的部分问题!的相关文章

mysql之索引原理与慢查询优化

一.介绍 1.什么是索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重.说起加速查询,就不得不提到索引了. 2.为什么要有索引呢? 索引在MySQL中也叫做"键",是存储引擎用于快速找到记录的一种数据结构.索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要.索引优化应该是对查询性能优化最有效的手段了.

Mysql数据库索引

索引(Index)是帮助mysql高效获取数据的数据结构.对于高性能非常关键. 索引的重要性主要体现在数据量非常大的时候.规模小,负载轻的数据库即使没有索引也可以获到好的查询效果 例如: 1 mysql>select first_name from actor where actor_id=5; 改索引列位于actor_id列,因此mysql会使用索引找到actor_id为5的行. 索引有很多种类型,各自有各自的特点.索引实在存储引擎层实现的,而不是服务器层. (1).B-Tree索引 谈论引擎

第二百八十八节,MySQL数据库-索引

MySQL数据库-索引 索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构.类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即可. 如果没有创建索引查找数据时,是全表扫描的,也就是向查字典一样没有目录,靠一页一页的翻到目标数据位置,这样如果数据量大会相当耗时, 索引就是快速帮助用户找到目标数据,节省时间 索引简介 索引是以B+tree方式的树形结构存放数据的 详情,可以网上搜索一下B+tree MySQL中常见索引有: 普通索引 唯一索引 主键索引 组合索

关于mysql的索引

我们先来了解MYSQL索引的概念: 索引是一种特殊的文件,他们包含着对数据表里所有记录的引用指针.更通俗地说,数据库索引好比是是一本书前面的目录,能加快数据库的查询速度,我们有了相应的索引后,数据库会直接在索引中查找符合条件的选项.索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了,聚簇索引能提高多行检索的速度,而非聚簇索引对单行的检索很快. mysql主要有两种结构:B+树和hash hash索引在mysql中较少用,它以把数据的索引以hash形

MySQL之索引

要理解 mysql中索引是如何工作,最简单的方法就是看看一本书的"索引"部分(即目录).然后通过索引找到指定的页码. 在mysql中,存储引擎用类似的方法使用索引,首先在索引中找到对应值,然后根据匹配的索引记录找到对应的数据行. 在mysql中,索引是在存储引擎层而不是服务器层实现的. 索引的优点: 索引可以让服务器快速定位到表的指定位置,但这并不是索引的唯一作用,到目前为止可以看到,根据索引的数据结构不同, 索引页有一些附加作用. 最常见的b-tree索引,按照顺序存储数据,所以my

MySQL单列索引和组合索引的区别介绍(转)

原文:http://database.51cto.com/art/201011/233234.htm MySQL单列索引是我们使用MySQL数据库中经常会见到的,MySQL单列索引和组合索引的区别可能有很多人还不是十分的了解,下面就为您分析两者的主要区别,供您参考学习. 为了形象地对比两者,再建一个表: CREATE TABLE myIndex ( i_testID INT NOT NULL AUTO_INCREMENT, vc_Name VARCHAR(50) NOT NULL, vc_Cit

【转】【备忘录】MySQL性能优化的21个最佳实践 和 mysql使用索引

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过 多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这些优化技巧对你有用. 1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被

浅析MySQL各种索引

MySQL各种索引(因为是浅析大多都不刻意区分搜索引擎) INDEX(普通索引):最基本的索引,没有任何限制 ALTER TABLE `table_name` ADD INDEX index_name ( `column` ) UNIQUE(唯一索引):与"普通索引"类似,不同的就是:索引列的值必须唯一,但允许有空值. ALTER TABLE `table_name` ADD UNIQUE (`column`) 注:创建唯一索引的目的不是为了提高访问速度,而只是为了避免数据出现重复.唯

ySQL性能优化的21个最佳实践 和 mysql使用索引

MySQL性能优化的21个最佳实践 和 mysql使用索引 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过 多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这些优化技巧对你有用. 1. 为查询缓存优化你的查询 大多数的MySQL服

简单介绍下MYSQL的索引类型

一.介绍一下索引的类型 Mysql常见索引有:主键索引.唯一索引.普通索引.全文索引.组合索引PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE (`column`)INDEX(普通索引)      ALTER TABLE `table_name` ADD INDEX index_name ( `column