索引类型
索引就是一种将数据库中的记录按照特殊形式存储的数据结构。
通过索引,能够显著地提高数据查询的效率,从而提升服务器的性能。
专业一点来说呢,索引是一个排好序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址。
在数据库十分庞大的时候,索引可以大大加快查询的速度,这是因为使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据。
说起索引,其实并不是 MySQL 数据库特有的机制,在关系型数据库中都会有类似不同的实现。
这里我们也只是讨论 MySQL 数据库中的索引实现。
事实上,说是 MySQL 的索引其实并不准确。
因为在 MySQL 中,索引是在存储引擎层而不是服务器层实现的。
这意味着我们所讨论的索引准确来说是 InnoDB 引擎或 MyISAM 引擎或其它存储引擎所实现的。
所以索引即便是在 MySQL 中也没有统一的标准,不同存储引擎的所实现的索引工作方式也并不一样。
不是所有的存储引擎都支持相同类型的索引,即便是多个引擎支持同一种类型的索引,其底层的实现也可能不同。
mysql“索引”能重复吗?“唯一索引”与“索引”区别是什么
普通索引
这是最基本的索引类型,而且它没有唯一性之类的限制。
唯一性索引
这种索引和前面的“普通索引”基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须唯一。
mysql字符串的索引和数字索引区别
在MySQL中,字符串索引和数字索引是两种不同的索引类型,它们有以下区别:
1. 数据类型:
- 字符串索引:适用于字符串类型的列,如VARCHAR、CHAR等。
- 数字索引:适用于数值类型的列,如INT、BIGINT等。
2. 存储方式:
- 字符串索引:根据字符串的字符顺序创建索引,使用B-tree或哈希等数据结构进行存储。
- 数字索引:根据数值大小创建索引,使用B-tree或哈希等数据结构进行存储。
3. 索引大小:
- 字符串索引:通常情况下,字符串索引会比数字索引占用更多的存储空间,因为字符串长度可能不一致。
- 数字索引:由于数值类型的固定长度,数字索引通常比字符串索引占用更少的存储空间。
4. 索引效率:
- 字符串索引:由于字符串的比较涉及字符的逐个比较,所以在字符串索引上的查询可能会比较慢。
- 数字索引:由于数值的大小比较较简单,所以在数字索引上的查询通常比较快。
5. 索引选择:
- 字符串索引:适用于需要根据字符串进行模糊匹配、排序或分组的查询。
- 数字索引:适用于需要根据数值进行范围查询、排序或分组的查询。
需要根据具体的数据类型和查询需求来选择适当的索引类型。对于包含字符串的列,使用字符串索引可以提高字符串匹配的效率;而对于数值型列,使用数字索引可以更好地支持数值范围的查询和排序操作。

