索引

MySQL索引的建立对于Mysql的搞笑运行时很重要的,索引可以大大提高MySQL的检索速度。

打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。

索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索包含多个列。

创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。

实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。

上面都在说使用索引的好处,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。建立索引会占用磁盘空间的索引文件。

普通索引

创建索引

这是最基本的索引,它没有任何限制。它有以下几种创建方式:

1 CREATE INDEX indexName ON mytable(username(length))

如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length。

 修改表结构

1 ALTER mytable ADD INDEX [indexName] ON (username(length))

创建表的时候直接指定

1 CREATE TABLE mytable(
2
3 ID INT NOT NULL, 4 5 username VARCHAR(16) NOT NULL, 6 7 INDEX [indexName] (username(length)) 8 9 ); 

删除索引的语法

1 DROP INDEX [indexName] ON mytable; 

唯一索引

它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:

创建索引

 1 创建索引2 CREATEUNIQUEINDEXindexName ONmytable(username(length)) 3  4  5 修改表结构  6 ALTERmytable ADDUNIQUE[indexName] ON(username(length))  7  8  9 创建表的时候直接指定 10 CREATETABLEmytable( 11 12 ID INTNOTNULL, 13 14 username VARCHAR(16) NOTNULL, 15 16 UNIQUE[indexName] (username(length)) 17 18 ); 

使用ALTER 命令添加和删除索引

 1 有四种方式来添加数据表的索引:2 ALTERTABLEtbl_name ADDPRIMARYKEY(column_list): 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。3 ALTERTABLEtbl_name ADDUNIQUEindex_name (column_list): 这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。  4 ALTERTABLEtbl_name ADDINDEXindex_name (column_list): 添加普通索引,索引值可出现多次。  5 ALTERTABLEtbl_name ADDFULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引。  6  7  8 以下实例为在表中添加索引。  9 mysql> ALTERTABLEtestalter_tbl ADDINDEX(c); 10 你还可以在 ALTER命令中使用 DROP子句来删除索引。尝试以下实例删除索引: 11 mysql> ALTERTABLEtestalter_tbl DROPINDEX(c);

使用 ALTER 命令添加和删除主键

1 主键只能作用于一个列上,添加主键索引时,你需要确保该主键默认不为空(NOTNULL)。实例如下:
2 mysql> ALTERTABLEtestalter_tbl MODIFYi INTNOTNULL;
3 mysql> ALTERTABLEtestalter_tbl ADDPRIMARYKEY(i); 4 5 你也可以使用 ALTER命令删除主键: 6 mysql> ALTERTABLEtestalter_tbl DROPPRIMARYKEY; 7 删除指定时只需指定PRIMARYKEY,但在删除索引时,你必须知道索引名。

显示索引信息

mysql> SHOW INDEX FROM table_name\G

转载于:https://www.cnblogs.com/qybk/p/9228867.html

mysql数据库的常用操作-索引相关推荐

  1. MySQL数据库的常用操作

    -- 数据库的常用操作 -- 管理数据:查看.添加.修改.删除数据 -- 查询数据:查询所有字段.查询指定字段.查询时指定别名.查询时合并列.查询时添加常量列.查询时取出重复数据-- 条件查询.分页查 ...

  2. linux 指定库名 登录mysql_linux下对应mysql数据库的常用操作

    ssh管理工具连接mysql数据库. 一.连接mysql数据库: 通过shh管理工具,登录linux的用户名,密码,进入ssh的命令行界面后,执行如下命令: mysql -u 数据库用户名 -p 然后 ...

  3. 连接并配置好无极网络VPS主机 | 配置Mysql数据库 | Centos 常用操作| vim操作 | 保持centos的任务 | 阿里云mysql | Node.js | 腾讯云mysql

    在无极网络获得主机并用Xshell6连接上 配置主机的DNS和网络连接 # http://www.5jwl.com/style/info/shownews.asp?id=1383 Xshell 6 ( ...

  4. mysql数据库一些常用操作

    mysql命令行语句一定要加:结束,不然就算你enter以后还是需要输入命令的. ALTER TABLE 原表名 RENAME TO 新表名   //修改表名 mysql -u root -p //登 ...

  5. Python 3.x对MySQL数据库的常用操作

    封面图片:<Python程序设计(第2版)>(ISBN:9787302436515),董付国,清华大学出版社 图书详情: ================ 首先安装MySQL,然后使用pi ...

  6. like mysql 相反_Mysql数据库的常用操作

    你这么优秀,一定只想把"柠檬班"置顶 ▲ 本文由柠檬班Python10期VIP学员Boy原创. 本文主要介绍mysql数据库的查询操作,捎带脚增删改操作. ·增 · insert  ...

  7. Linux下Mysql数据库的基础操作

    Linux下Mysql数据库的基础操作 一.Mysql数据介绍 二.数据库相关术语介绍 1.数据库相关名词 2.相关术语介绍 三.Mysql数据库的管理 1.创建数据库用户 2.查询用户状态 3.修改 ...

  8. Java数据库开发与应用之MySQL数据库、JDBC操作数据库、C3P0数据库连接池,Java反射等

    MySQL数据库,JDBC接口,MyBatis框架等,掌握的数据的存放和管理. Java数据库开发基础,介绍MySQL数据库.JDBC操作数据库.C3P0数据库连接池,Java反射等内容,进行油画商城 ...

  9. MySQL数据库的数据类型和索引

    数据库的数据库索引对程序员来说是透明的,意味着数据库建立索引之前和之后,你的SQL语句都可以正常运行,索引的运用只是数据库引擎工作时候的优化手段.但是,这不是意味着数据库索引仅仅是数据库设计和运维者的 ...

最新文章

  1. leangoo领歌敏捷开发工具新增任务到期提醒功能
  2. 深度学习在计算机视觉领域(包括图像,视频,3-D点云,深度图)的应用一览
  3. 解决报错:gpg: keyserver receive failed: No dirmngr
  4. 路由器刷机常见第三方固件及管理前端种类(OpenWrt、Tomato、DD-Wrt)
  5. PHP 设计模式之迭代器模式
  6. 宏与内联(inline)的区别(转载)
  7. asp.net treeView绑定
  8. 列表反向组成数字相加,并输出数组反向组成列表
  9. 提高篇 第二部分 字符串算法 第4章 AC自动机
  10. linux php整合mysql_linux下Apache、php3、MySQL的整合
  11. Spring MVC 基于Method的映射规则(注解版)
  12. Akka系统《sixteen》译
  13. HTML data-* 自定义属性
  14. linux实训项目有哪些内容,实训项目2__Linux基本命令(带参考答案)
  15. java如何让cpu过负荷_服务器开发过载问题如何解决
  16. 超简单APP图标制作
  17. html如何改成花体英文字体,花体英文转换器可复制字体(附花体字发文技巧)...
  18. html中 为什么在页面点击提交后reset按钮就不起作用了
  19. ASP.NET Word转换成PDF文件
  20. EPUB、CAJ 、PDF 格式的区别,windows上有什么好用的epub阅读器

热门文章

  1. java中min用法,java11教程--类MinguoDate用法
  2. oracle eco 开放接口,问题:关于ECO,ECN的API或者INTERFACE
  3. oracle 监听主机,Oracle 监听
  4. mysql报196271错误_超过mysql最大连接的异常
  5. 华为stfal00是什么手机_opporeno5pro和华为p40pro有什么区别 哪款手机更好
  6. Linux权限管理(基本权限、默认权限、
  7. 企业实战之分布式锁方案一步步的演变历程!,Java数据库索引面试题
  8. 什么水平能做java中级工程师,挑战大厂重燃激情!
  9. 【机器学习】基于概率论的分类方法和Logistic回归
  10. 怎么预约鸿蒙系统,华为鸿蒙2.0系统-鸿蒙2.0系统预约-艾艾软件园