0
点赞
收藏
分享

微信扫一扫

用python来爬取某鱼的商品信息(2/2)

请添加图片描述

请添加图片描述

索引 • MySQL版

前言

一、索引

1.简介

👉:传送门💖索引的优缺点💖

2.创建

👉:传送门💖2.1.1普通索引 ~ 2.1.4复合索引💖

2.1 索引类型之逻辑分类

2.1.1普通索引(单列索引) 的创建

2.1.2普通索引(单列索引) 的查看

2.1.3 复合索引(组合索引)的创建

2.1.4 复合索引(组合索引)的应用

👉:传送门💖2.1.1普通索引 ~ 2.1.4复合索引💖

2.1.5 唯一索引的创建

  • 唯一索引和普通索引类似,主要的区别在于,唯一索引限制列的值必须唯一,但允许存在空值只允许存在一条空值

  • 1.创建单个索引

CREATE UNIQUE INDEX index_name ON table_name(col_name);
  • 2.创建多个索引

CREATE UNIQUE INDEX index_name on table_name(col_name,...);
  • 3.修改表结构——单个
ALTER TABLE table_name ADD UNIQUE index index_name(col_name);
  • 4.修改表结构——多个
ALTER TABLE table_name ADD UNIQUE index index_name(col_name,...);
  • 5.创建表的时候直接指定索引
CREATE TABLE news (
  id int(11) NOT NULL AUTO_INCREMENT ,
  title varchar(255) NOT NULL ,
  content varchar(255) NULL ,
  time varchar(20) NULL DEFAULT NULL ,
  PRIMARY KEY (id),
  UNIQUE index_name_unique(title)
)

2.1.6 复合索引&唯一索引的比较

  • 情况1:表中有复合与唯一,对于存在的值
explain
select * from emp where empno = '7499';
  • 情况2:表中有复合与唯一,对于不存在的值
explain
select * from emp where empno = '99999';
  • 情况3:表中只有复合,对于不存在的值
explain
select * from emp where empno = '99999';

在这里插入图片描述

2.1.7 主键索引的介绍(MySQL&Oracle)

  • 主键索引是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值
  • 一般是在建表的时候同时创建主键索引
    • 导出建表语句的时候,在primary key后面会自带一个using btree

      • 在这里插入图片描述
    • 上图是MySQL的,如果是Oracle的话,会单独对主键进行create index

      • 在这里插入图片描述

2.1.8 主键索引的创建

  • 1.主键索引(创建表时添加)
CREATE TABLE `news` (
  `id` int(11) NOT NULL AUTO_INCREMENT ,
  `title` varchar(255) NOT NULL ,
  `content` varchar(255) NULL ,
  `time` varchar(20) NULL DEFAULT NULL ,
   PRIMARY KEY (`id`) 
)
  • 2.主键索引(创建表后添加)
alter table tbl_name add primary key(col_name);
  • 3.示例
CREATE TABLE `order` (
  `orderId` varchar(36) NOT NULL,
  `productId` varchar(36) NOT NULL ,
  `time` varchar(20) NULL DEFAULT NULL
)
alter table `order` add primary key(`orderId`);

2.1.9 主键索引 & 复合索引

  • 如果在主键上建复合索引,对于主键索引和复合索引,在查找时会优先使用复合索引
  • 如果只有主键索引,使用主键索引是很快的,const级别,这是第二快的级别,最快的级别是null,即啥也没查到
explain
select * from emp where empno = 7369

在这里插入图片描述

2.1.10 全文索引

  • 在一般情况下,模糊查询都是通过 like 的方式进行查询。
  • 全文搜索在 MySQL 中是一个 FULLTEXT 类型索引。FULLTEXT 索引在 MySQL 5.6 版本之后支持 InnoDB
CREATE FULLTEXT INDEX index_fulltext_content ON table_name(col_name)
  • 注意: 默认 MySQL 不支持中文全文检索!

  • MySQL 全文搜索只是一个临时方案,对于全文搜索场景,更专业的做法是使用全文搜索引擎,例如ElasticSearch 或 Solr。

小结

请添加图片描述

举报

相关推荐

0 条评论