使用索引的场景:

阿里云日志里出现了慢sql

然后发现publish_works_id字段会经常用于一些关联,所以决定把这个字段加上索引,优化sql

可视化navicat操作字段加索引,选择字段所在的表,第一步:右键->设计表

第二步:点击索引

第三步:添加索引

下面是通过sql语句添加索引的方法:

1、普通索引

普通索引是最基本的索引,它没有任何限制,值可以为空;仅加速查询。可以通过以下几种方式来创建或删除:

1)、直接创建索引

CREATE INDEX index_name ON table(column(length))

2)、修改表结构的方式添加索引

ALTER TABLE table_name ADD INDEX index_name ON (column(length))

3)、删除索引

DROP INDEX index_name ON table

2、唯一索引

唯一索引与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。简单来说:唯一索引是加速查询 + 列值唯一(可以有null)。以通过以下几种方式来创建:

1)、创建唯一索引

CREATE UNIQUE INDEX indexName ON table(column(length))

2)、修改表结构

ALTER TABLE table_name ADD UNIQUE indexName ON (column(length))

3、主键索引

主键索引是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。简单来说:主键索引是加速查询 + 列值唯一(不可以有null)+ 表中只有一个。

一般是在建表的时候同时创建主键索引:

CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, PRIMARY KEY(ID) );

当然也可以用 ALTER 命令。记住:一个表只能有一个主键。

4、组合索引

组合索引指在多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循最左前缀集合。

可以说:组合索引是多列值组成的一个索引,专门用于组合搜索,其效率大于索引合并。

ALTER TABLE `table` ADD INDEX name_city_age (name,city,age);

5、全文索引

全文索引主要用来查找文本中的关键字,而不是直接与索引中的值相比较。fulltext索引跟其它索引大不相同,它更像是一个搜索引擎,而不是简单的where语句的参数匹配。fulltext索引配合match against操作使用,而不是一般的where语句加like。它可以在create table,alter table ,create index使用,不过目前只有char、varchar,text 列上可以创建全文索引。值得一提的是,在数据量较大时候,现将数据放入一个没有全局索引的表中,然后再用CREATE index创建fulltext索引,要比先为一张表建立fulltext然后再将数据写入的速度快很多。

1)、创建表的适合添加全文索引

CREATE TABLE `table` (`id` int(11) NOT NULL AUTO_INCREMENT ,`title` char(255) CHARACTER NOT NULL ,`content` text CHARACTER NULL ,`time` int(10) NULL DEFAULT NULL ,PRIMARY KEY (`id`),FULLTEXT (content));

2)、修改表结构添加全文索引

ALTER TABLE article ADD FULLTEXT index_content(content)

3)、直接创建索引

CREATE FULLTEXT INDEX index_content ON article(content)

1.添加PRIMARY KEY(主键索引)

ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )

2.添加UNIQUE(唯一索引)

ALTER TABLE `table_name` ADD UNIQUE (`column`)

3.添加INDEX(普通索引)

ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

4.添加FULLTEXT(全文索引)

ALTER TABLE `table_name` ADD FULLTEXT (`column`)

mysql添加索引的方法(Navicat可视化加索引和sql语句加索引)相关推荐

  1. sql语句创建索引_SQL创建索引语句示例说明

    sql语句创建索引 This statement is used to create an "index" on a column in an existing table. 该语 ...

  2. mysql 下 计算 两点 经纬度 之间的距离 含具体sql语句

    mysql取字段逗号分隔的第一个 cover字段为:(admin/LUpiEMD1Pk6U6B,admin/LUpiEMD1Pk6U6B,admin/LUpiEMD1Pk6U6B) 取逗号分隔第一个词 ...

  3. mysql解压版怎么添加服务_Windows系统下MySQL添加到系统服务方法(mysql解压版)

    MySQL软件版本:64位 5.7.12 1.首先配置MySQL的环境变量,在系统环境变量Path的开头添加MySQL的bin目录的路径,以";"结束,我的路径配置如下: 2.修改 ...

  4. 使用MySQL可视化客户端,例如SQLyog,Navicat等,只编写SQL语句,使用2的N次方原理,快速初始化百万千万条数据

    目录 1.思路 2.创建表 3.具体操作 4.其他快速插入百万条数据的方法 4.1Java代码批量插入 4.2存储过程批量插入 1.思路 使用MySQL可视化客户端,例如SQLyog,Navicat ...

  5. c mysql 添加数据类型_MYSQL的常用命令和增删改查语句和数据类型

    连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 显示所有数据库: show databases; 打开数据库:use [ ...

  6. Effective MySQL之SQL语句最优化--索引

    1 两个索引取并集组合 -- 执行命令: ALTER TABLE album ADD INDEX name_release (name,first_released); EXPLAIN SELECT ...

  7. mysql左对齐原则_Mysql学习,这21个SQL语句优化规范方法你知道吗

    前言 每一个好习惯都是一笔财富,本文分SQL后悔药, SQL性能优化,SQL规范优雅三个方向,分享写SQL的21个好习惯,谢谢阅读,加油哈~ github地址,感谢每颗star  github.com ...

  8. mysql统计数量函数方法_mySql关于统计数量的SQL查询操作

    mySql关于统计数量的SQL查询操作,状态,订单,语句,函数,数量 mySql关于统计数量的SQL查询操作 易采站长站,站长之家为您整理了mySql关于统计数量的SQL查询操作的相关内容. 我就废话 ...

  9. 织梦栏目mysql调用_织梦dedecms栏目调用标签,包括SQL语句调用方法

    {dede:channelartlist typeid='栏目ID' row='条数'} {dede:sql sql='Select * from dede_arctype where reid=~i ...

最新文章

  1. 损失函数(损失函数、代价函数、目标函数)、​​​​​​​MSE、0-1损失函数、绝对误差损失函数、分位数损失函数、Huber损失函数、感知损失函数、Hinge损失函数、指数损失函数、对数损失函数
  2. 计算机仿真氢光谱实验,氢氘灯光谱实验报告..docx
  3. live联系人导出到CSV乱码
  4. 爱立信更换集团CTO Erik Ekudden将于7月1日上任
  5. Shiro与Springboot整合:配置依赖改造登录方法
  6. map,multimap,unordered_map,unordered_multimap的详解
  7. 《如何了解软件的设计》学习笔记0——模型-接口-实现
  8. Ubuntu runlevel修改
  9. 拟阵:贪心原理(bzoj 3105: [cqoi2013]新Nim游戏)
  10. 【九度OJ1522】|【剑指offer21】包含min函数的栈
  11. 巧妙帮你保存个人隐私 WinRAR加密全攻略
  12. AI公开课:03月26日未来十年 AI如何进化—圆桌探讨(乌镇智库理事长、CSDN 创始人董事长、智源人工智能研究院副院长)之《AI:昨天 · 今天 · 明天》
  13. linux常用命令-part2
  14. 科学幻想其实是对科学研究的发展方向起到很好的引领作用
  15. java获取剩余手机电池容量_怎样判断手机电池的剩余容量
  16. IntelliJ IDEA 2018.3 x64 安装激活教程(全面)
  17. c++ 调用opencv+tesseract做图片文字识别
  18. GoogleTest使用教程
  19. 如何快速找到不与任何道路相连的路
  20. 信息管理,数据库相关

热门文章

  1. VC++异常捕获__try...__except和try...catch的使用介绍(附源码)
  2. mysql远程访问命令linux,linux mysql远程连接命令
  3. 点播, 单播,组播和广播
  4. 树莓派小车——红外避障模块
  5. linux mysql命令行操作
  6. SQL替换字符串函数replace()
  7. IIS 服务20分钟后自动停止
  8. Qt Qt/E Qtopia 的关系
  9. Apm飞控学习笔记之悬停loiter模式-Cxm
  10. 爱奇艺VR获数亿元B轮融资,中国VR行业迎来特殊时期