mysql添加索引的方法(Navicat可视化加索引和sql语句加索引)
使用索引的场景:
阿里云日志里出现了慢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语句加索引)相关推荐
- sql语句创建索引_SQL创建索引语句示例说明
sql语句创建索引 This statement is used to create an "index" on a column in an existing table. 该语 ...
- mysql 下 计算 两点 经纬度 之间的距离 含具体sql语句
mysql取字段逗号分隔的第一个 cover字段为:(admin/LUpiEMD1Pk6U6B,admin/LUpiEMD1Pk6U6B,admin/LUpiEMD1Pk6U6B) 取逗号分隔第一个词 ...
- mysql解压版怎么添加服务_Windows系统下MySQL添加到系统服务方法(mysql解压版)
MySQL软件版本:64位 5.7.12 1.首先配置MySQL的环境变量,在系统环境变量Path的开头添加MySQL的bin目录的路径,以";"结束,我的路径配置如下: 2.修改 ...
- 使用MySQL可视化客户端,例如SQLyog,Navicat等,只编写SQL语句,使用2的N次方原理,快速初始化百万千万条数据
目录 1.思路 2.创建表 3.具体操作 4.其他快速插入百万条数据的方法 4.1Java代码批量插入 4.2存储过程批量插入 1.思路 使用MySQL可视化客户端,例如SQLyog,Navicat ...
- c mysql 添加数据类型_MYSQL的常用命令和增删改查语句和数据类型
连接命令:mysql -h[主机地址] -u[用户名] -p[用户密码] 创建数据库:create database [库名] 显示所有数据库: show databases; 打开数据库:use [ ...
- Effective MySQL之SQL语句最优化--索引
1 两个索引取并集组合 -- 执行命令: ALTER TABLE album ADD INDEX name_release (name,first_released); EXPLAIN SELECT ...
- mysql左对齐原则_Mysql学习,这21个SQL语句优化规范方法你知道吗
前言 每一个好习惯都是一笔财富,本文分SQL后悔药, SQL性能优化,SQL规范优雅三个方向,分享写SQL的21个好习惯,谢谢阅读,加油哈~ github地址,感谢每颗star github.com ...
- mysql统计数量函数方法_mySql关于统计数量的SQL查询操作
mySql关于统计数量的SQL查询操作,状态,订单,语句,函数,数量 mySql关于统计数量的SQL查询操作 易采站长站,站长之家为您整理了mySql关于统计数量的SQL查询操作的相关内容. 我就废话 ...
- 织梦栏目mysql调用_织梦dedecms栏目调用标签,包括SQL语句调用方法
{dede:channelartlist typeid='栏目ID' row='条数'} {dede:sql sql='Select * from dede_arctype where reid=~i ...
最新文章
- 损失函数(损失函数、代价函数、目标函数)、​​​​​​​MSE、0-1损失函数、绝对误差损失函数、分位数损失函数、Huber损失函数、感知损失函数、Hinge损失函数、指数损失函数、对数损失函数
- 计算机仿真氢光谱实验,氢氘灯光谱实验报告..docx
- live联系人导出到CSV乱码
- 爱立信更换集团CTO Erik Ekudden将于7月1日上任
- Shiro与Springboot整合:配置依赖改造登录方法
- map,multimap,unordered_map,unordered_multimap的详解
- 《如何了解软件的设计》学习笔记0——模型-接口-实现
- Ubuntu runlevel修改
- 拟阵:贪心原理(bzoj 3105: [cqoi2013]新Nim游戏)
- 【九度OJ1522】|【剑指offer21】包含min函数的栈
- 巧妙帮你保存个人隐私 WinRAR加密全攻略
- AI公开课:03月26日未来十年 AI如何进化—圆桌探讨(乌镇智库理事长、CSDN 创始人董事长、智源人工智能研究院副院长)之《AI:昨天 · 今天 · 明天》
- linux常用命令-part2
- 科学幻想其实是对科学研究的发展方向起到很好的引领作用
- java获取剩余手机电池容量_怎样判断手机电池的剩余容量
- IntelliJ IDEA 2018.3 x64 安装激活教程(全面)
- c++ 调用opencv+tesseract做图片文字识别
- GoogleTest使用教程
- 如何快速找到不与任何道路相连的路
- 信息管理,数据库相关
热门文章
- VC++异常捕获__try...__except和try...catch的使用介绍(附源码)
- mysql远程访问命令linux,linux mysql远程连接命令
- 点播, 单播,组播和广播
- 树莓派小车——红外避障模块
- linux mysql命令行操作
- SQL替换字符串函数replace()
- IIS 服务20分钟后自动停止
- Qt Qt/E Qtopia 的关系
- Apm飞控学习笔记之悬停loiter模式-Cxm
- 爱奇艺VR获数亿元B轮融资,中国VR行业迎来特殊时期