前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql从入门到放弃(五)

Mysql从入门到放弃(五)

作者头像
会呼吸的Coder
发布2020-02-17 17:36:51
5630
发布2020-02-17 17:36:51
举报
文章被收录于专栏:会呼吸的Coder
MySQL主要有四种索引

主键索引 primary key

唯一索引 unique

常规索引 index

全文索引 fulltext

(1) 主键索引

主键索引是关系数据库中最常见的索引类型 主要作用是确定数据表里一条特定的数据记录的位置

我们可以在字段后添加primary key 来对字段设置为主键索引

注意事项

  1. 最好为每张表指定一个主键 但不是必须指定
  2. 一个表只能指定一个主键 而且主键的值不能为空 通常和auto_increment 搭配

创建

代码语言:javascript
复制
create testprim(
id int unsigned primary key auto_increment
)
自增得步长

mysql的默认步长是居于会话session的 查看全局变量 其中默认为1

查看步长

代码语言:javascript
复制
show session variables like 'auto_inc%';

设置步长 只能针对当前的会话

代码语言:javascript
复制
set session auto_incrment_increment = 2; 设置会话步长为2

查看全局

代码语言:javascript
复制
show global variables liek 'auto_inc%';

修改全局级别的

代码语言:javascript
复制
set global auto_increment_increment = 1;
修改自增值(自增归位)
代码语言:javascript
复制
alter table user auto_increment = 1;
truncate 表名 (清空表 并将自增归位)
(2) 常规索引 index

常规索引技术是关系型数据库查询中最重要的技术 如果要提升数据库的性能 索引优化是首先应该考虑的 因为它能使我们的数据库得到最大性能方面的提升

缺点:

  1. 多占用磁盘空间
  2. 会减慢插入 删除 和 修改的操作

创建常规索引:

创建常规索引 可以使用 index 和 key 关键字随表一同创建

实例:

代码语言:javascript
复制
mysql> create table testindex(
    -> username varchar(20),
    -> index luckyindex(username)
    -> );
mysql> create table testkey(
    -> username varchar(20),
    -> key (username)
    -> );
    

说明:

给username字段设置一个常规索引 索引名称为luckyindex

如果不给所以字段起名称 默认索引名称为字段名

注意:

  1. 在给mysql创建常规索引和唯一索引的时候 单独一行去创建 不要和字段放在一行 出错!
  2. 一个表中可以存在多个常规索引 但是要根据具体的情况去设置 某个字段有大量的查询的时候
(4) 唯一索引

唯一索引与主键索引一样 都可以防止创建重复的值 但是 不同之处在于 每个数据表中只能有一个主键索引 但是可以有多个唯一索引 使用unique对字段 定义唯一索引

注意:

如果在给表中字段插入值的情况报错 查看 字段是否设置了唯一索引

创建

代码语言:javascript
复制
mysql> create table testunique(
    -> username varchar(20),
    -> email varchar(50),
    -> phone char(11),
    -> unique(username),
    -> unique uniemail(email),
    -> unique(phone)
    -> );

说明:

给usernam email phone设置了唯一索引 其中email设置了索引名称为uniemail 其余索引名称为 默认字段名

(5) 全文索引

全文索引在mysql中是一个fulltext类型索引 但fulltext索引只能用于MyISAM表 并且只可以在char varchar 或text类型的字段上创建

缺点:

fulltext是不支持中文全文索引的

创建

代码语言:javascript
复制
 CREATE TABLE `textfull` (
  `article` text,
  FULLTEXT KEY `article` (`article`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
代码语言:javascript
复制
alter table 表名 add fulltext(字段名称)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 初级程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MySQL主要有四种索引
  • (1) 主键索引
    • 自增得步长
      • 修改自增值(自增归位)
      • (2) 常规索引 index
      • (4) 唯一索引
      • (5) 全文索引
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档