怎么去创建索引啊,我们先看第一种啊1. 普通索引,所谓的普通索引是什么啊,就是index,比如像这种primary key,还有index,还有unique,这些都可以把它划分到普通索引当中,他除了有普通索引以外,唯一索引,全文索引,还有一个聚合组合索引,4大索引,普通索引就是index,既不是组件也不是惟一的,那普通索引怎么创建呢,其实是比较简单的,这是最基本的索引,他没有任何限制,MYISAM中默认的B-TREE索引,也是我们大多数情况下要用到的索引,也就是我们建索引其实更多的就是建index索引,我们来看他的语法格式是及其简单的,直接创建, create index [index_name] on [table_name](column(length)),括号括起来是指索引的名字,我们一定要给索引起名字,不仅仅是普通索引,包括我们主键索引,唯一性索引,还有组合索引,我们都应该有名字,有名字的好处是什么呢,你未来想删除索引的时候,他都是根据索引的名字去删的,明白这个意思吧[table_name]是指在哪个表上创建索引,[column(length)]然后给哪个列创建索引,你看列里给了一个length,那么这个长度表示什么含义呢,你在创建索引的时候,这个长度就是要把这个索引这个列里字段的值取多长放到索引里,如果不写length,那他就会把这列里所有的数据等长度的塞到索引里,比如说,我现在有name这样的一个列,然后这个列里有什么值呢,然后我在给name创建索引的时候,我再给name字段没有写length,它会把这条数据里的这一列的值全都加在数据里,能明白吗,那么所带来的问题是什么呢索引他的存储空间肯定需要很大,但是实际上我们在找数据的时候,我要找abc的,abc和abab都是以a开头,那我可以取3位,3位什么意思呢,只把其他的前3位放到索引里,那就可以通过前3位去区分abc和abab,所以索引来给定长度,所带来的好处,这种索引叫短索引,是可以进一步提升索引检索的性能,如果没给length,把整个列都放到里面,这就叫长索引了,我们来试一下,来创建一个最普通的索引,我们先创建一个表,当然你也可以通过命令来创建,id,类型int,然后来一个u_name,varchar,长度20,允许为空,u_age,int类型,这样一个表就创建好了,这里又一个查看索引的命令,show index from [table_name],那现在在我这个表里,有几个索引,只有一个,什么索引啦,不是普通索引,唯一性索引,主键吗,我们可以查一下,新建查询,show index from users;下面会显示表的索引信息,table是users,Key_name就是PRIMARY,你没给他起名默认就是PRIMARY作为他的名称,明白吗,然后注意看它是用什么来做他的索引的,Index_Type是BTREE类型的,这是主键索引比如我们这个name会经常会在where语句后面作为查询条件,那我是不是可以给这个name加一个索引啊,是吧,但是你能给她加一个主键吗,因为它未来的内容可能会有重复的,所以不能加主键索引,也不能加唯一性索引,就得加普通的index索引,那怎么创建呢,有多种情况,首先来看第一个1. 第一个直接创建,create index [索引名] on [表名](column(length));先用直接创建这种方式,这个名字尽量要和可能的关键字避免开on后面是哪个表,这个表里给谁建索引啊,create index name_index on users(u_name);运行是不是创建完了,我们是不是把整个列作为索引项了,我们再去show index from user;是不是多了一条数据,这Key_name是不是name_index,往后看,column_name叫u_name,也是BTREE类型索引,这就创建完了,是不是很简单,我现在想删除掉索引怎么办,也非常简单2.删除索引,一种是直接删除法, drop 索引名 on [表名];还有一种是通过修改表的方式,直接删除法,drop index删除一个索引,索引名字叫name_index,然后on users这个表,drop index name_index on users;然后我们show index from users;没了吧,这就是删除index,刚才我们用的create index方式,还有一种方式是什么呢,是对表修改来添加索引,我们修改表用什么命令来着,用alter,来看一下,他的语法结构也是比较简单的,alter table修改表,然后表的名字,你要对哪个表进行修改,然后你要修改什么,ADD INDEX添加一个索引,然后索引名称,和索引列,那么我们用这个命令再来做一个,添加索引,alter table users add index name_index(u_name);然后对他做一个什么样的操作呢,add index添加索引,索引的名称叫什么呢,叫name_index,谁拥有这个名字呢,执行也成功了吧,然后再show index from users;是不是一样有这个东西,是不是还是BTREE类型的,我先把它删掉,drop index name_index on users;show index from users;没有了吧,为什么把它删了呢,刚才我们直接创建和直接修改表创建,所创建的索引都是长索引,长索引是什么含义来的,会把这个列里面所有的值完整的作为索引的一部分,那我们是不是可以建短索引,短索引什么含义呢,就是可以指定长度,把这个值的指定长度加到索引里面,其他的不加,那怎么来建这个短索引呢,这个很简单,括号加长度,比如是2,alter table users add index name_index(u_name(2));这是什么,只取内容的前两个字符作为存储信息的信息列,好不好使呢,我们运行,是不是一样可以创建,show index from users;你看Sub_part,是不是长度为2,懂了吗,那么总的来说创建普通索引还是比较简单的吧3. 直接修改说了,直接删除说了,还有一个是创建表的时候就可以指定索引,创建表的语句还会不会写啦,咱们写一个比如我现在要创建一个什么表呢,我要创建一个Person,然后里面有id字段,里面有p_name字段,有p_age字段,怎么创建,create table创建一个表,然后后面跟一个表名,括号,里面跟着列名,类型,及其特点,比如id,什么类型呢,int类型的,然后是不是可以primary key,是不是还可以自动增长啊auto_incrementcreate table person (id int primary key auto_increment,p_name varchar(40),INDEX (p_name)
)

索引创建以及优化_1相关推荐

  1. MySQL实战——表、索引创建与优化

    目录 前言 MySQL表.索引 优化实战 优化前 - 表.索引结构 表优化思路 非聚簇索引优化思路 组合索引优化思路 认识key_len 依据最左匹配选择 只使用一列也能走联合索引 依据最左匹配选择 ...

  2. MySQL 如何创建索引?怎么优化?

    2019独角兽企业重金招聘Python工程师标准>>> 索引类似大学图书馆建书目索引,可以提高数据检索的效率,降低数据库的IO成本.MySQL在300万条记录左右性能开始逐渐下降,虽 ...

  3. mysql物理删除索引_mysql创建索引,mysql索引优化,mysql索引创建删除

    mysql创建索引,mysql索引优化,mysql索引创建删除 ================================ ©Copyright 蕃薯耀 2020-11-23 http://fa ...

  4. oracle数据库创建索引以及简单优化sql语句

    Oracle 建立索引及SQL优化 数据库索引: 索引有单列索引 复合索引之说 如何某表的某个字段有主键约束和唯一性约束,则Oracle 则会自动在相应的约束列上建议唯一索引.数据库索引主要进行提高访 ...

  5. 关于Mongodb索引创建的一些体会

    2019独角兽企业重金招聘Python工程师标准>>> mongodb索引分类以及创建我就不多说了,如果想了解可以直接在百度上搜索,这里我说一下关于索引创建的个人想法. 1.优先给一 ...

  6. 高并发之存储篇:关注下索引原理和优化吧!躲得过实践,躲不过面试官!

    以MySQL的InnoDB索引为主,看完需要5分钟 本文内容预览: 为什么Kafka不需要我们关心索引,而Mysql却需要? Mysql数据怎么被组织 2.1 数据记录最小单位:行 2.2 与磁盘最小 ...

  7. Mysql 索引原理及优化

    本文内容主要来源于互联网上主流文章,只是按照个人理解稍作整合,后面附有参考链接. 一.摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引 ...

  8. 面试题: mysql 数据库已看 sql安全性 索引 引擎 sql优化

    总结的一些MySQL数据库面试题 2016年06月16日 11:41:18 阅读数:4950 一.sql语句应该考虑哪些安全性? (1)防止sql注入,对特殊字符进行转义,过滤或者使用预编译的sql语 ...

  9. MySQL索引分析和优化(转)

    MySQL索引分析和优化(转) 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记 录,直至找到符 ...

最新文章

  1. python 自定义异常
  2. 同步等待异步操作,为什么Wait()在这里冻结程序
  3. 机器学习(MACHINE LEARNING)MATLAB动态规划解决背包问题
  4. Python基础入门教程:使用 Python 3 协程快速获得一个代理池
  5. java 线程执行完就会回收吗_Java线程池技术Executors的这个坑你踩过吗?
  6. RabbitMq初探——安装
  7. 2016年成熟亚太地区公共云服务市场规模将达到81亿美元
  8. Android之自定义 ActionBar 上的菜单(Menu)文字颜色
  9. 音视频即时通讯二次开发
  10. window设置快捷键左右方向键
  11. 为什么要用SpringCloud alibaba作为微服务开发框架?
  12. 考前必练15道题_《系统集成项目管理工程师备考宝典》
  13. 华为微博抽奖头目两次中奖:大哥咱玩不起,不玩行不行?
  14. 哈工大同义词词林 python 使用范例
  15. html图片有的不显示不出来的,css背景图片不显示有哪些原因?
  16. linux中重要文件夹介绍
  17. c/c++面试官经常提的问题
  18. 怎么减少if()---else操作,优化代码
  19. 纯JS+HTML简单表格增删改查
  20. 游戏感:虚拟感觉的游戏设计师指南——第一章 定义游戏感

热门文章

  1. IsWindow,findwindow
  2. eclipse 快捷键大全
  3. 车和家李想:特斯拉加州经验难以直接复制到国内
  4. 基于httpd建立私有CA实现https加密连接
  5. 洛谷P1561 [USACO12JAN]爬山Mountain Climbing 贪心 数学
  6. IOS 中runtime 不可变数组__NSArray0 和__NSArrayI
  7. eclipse执行单元测试报CreateProcess error=87的解决方法
  8. [置顶]       编写自己的JQUERY插件
  9. python的断点调试
  10. 关闭弹出窗口刷新父窗口