关系型数据库MySQL(二)_索引
优点
大大加快数据的查询速度
创建唯一性索引,保证数据库表中每一行数据的唯一性
在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间
缺点
索引需要占物理空间
当对表中的数据进行增删改的时候,索引也要进行修改,降低了数据的维护速度
使用原则
并不是索引越多越好,而是需要自己合理的使用
经常更新的表要避免有过多的索引,而经常查询的字段应该创建索引
数据量小的表最好不要使用索引(因为由于数据较少,可能查询全部数据花费的时间比遍历索引的时间还要短,索引就可能不会产生优化效果)
在相同值多的列上不要建立索引,比如在学生表的"性别"字段上只有男,女两个不同值。相反的,在一个字段上不同值较多可以建立索引。数据之间越不相同,索引速度越快。
索引的类型
普通索引, 唯一索引, 主键索引, 组合索引,全文索引
普通索引
最基本的索引,没有任何限制
直接创建索引:create index index_name on table_name(column_name);
修改表结构的方式创建:alter table table_name add index index_name(column_name);
创建表时指定索引:create table table_name(...,...,index index_name(column_name));
唯一索引
索引列中的值必须是唯一的,允许有空值
直接创建索引:create unique index index_name on table_name(column_name);
修改表结构的方式创建:alter table table_name add unique index index_name(column_name);
创建表时指定索引:create table table_name(...,...,unique index index_name(column_name));
主键索引
是唯一索引的特定类型,不允许有空值;对于主键,关系数据库会自动对其创建主键索引。使用主键索引的效率是最高的,因为主键会保证绝对唯一
创建方式:与创建表时添加主键的方式相同
组合索引
在多个字段上创建的索引
alter table table_name add index index_name(column1,column2,column3);
全文索引
主要用来查找文本中的关键字,而不是直接与索引中的值相比较,它更像是一个搜索引擎
直接创建索引:create fulltext index index_content on table_name(content);
修改表结构的方式创建:alter table table_name add fulltext index index_name(content);
创建表时指定索引:create table table_name(...,...,fulltext index index_name(content));
修改索引名称
alter index old_index_name rename to new_index_name;
删除索引
drop index index_name on product;
关系型数据库MySQL(二)_索引的更多相关文章
- 关系型数据库MySQL(四)_备份与还原
数据库备份 备份命令:mysqldump 备份一个数据库 mysqldump -h localhost -u username -p password database_name > D:\fi ...
- 关系型数据库MySQL(一)_增删改查
1.创建表单 create table product (product_id char(4) not null, product_name varchar(100) not null, sa ...
- 关系型数据库MySQL(三)_触发器
简介 用来给保证数据完整性的一种方法,经常用于加强数据的完整性: 是与表事件相关的特殊的存储过程,与存储过程的唯一区别是触发器不能执行execute语句调用,而是在用户执行SQL语句时自动触发执行 执 ...
- Hadoop生态组件Hive,Sqoop安装及Sqoop从HDFS/hive抽取数据到关系型数据库Mysql
一般Hive依赖关系型数据库Mysql,故先安装Mysql $: yum install mysql-server mysql-client [yum安装] $: /etc/init.d/mysqld ...
- MongoDB 与传统关系型数据库mysql比较
与关系型数据库相比,MongoDB的优点: 转载自 http://blog.sina.com.cn/s/blog_966e430001019s8v.html①弱一致性(最终一致),更能保证用户的访问 ...
- 数据库 MySQL进阶之索引
数据库的索引非常重要,基本面试数据库的问题都在索引上,所以这里小编整理出来,一方面为了自己复习,一方面也方便大家. 一,索引前传 在了解数据库索引之前,首先有必要了解一下数据库索引的数据结构基础,那么 ...
- Python3爬虫(九) 数据存储之关系型数据库MySQL
Infi-chu: http://www.cnblogs.com/Infi-chu/ 关系型数据库关系型数据库是基于关系模型的数据库,而关系模型是通过二维表来保存的,所以关系型数据库的存储方式就是行列 ...
- Flink RichSourceFunction应用,读关系型数据(mysql)数据写入关系型数据库(mysql)
1. 写在前面 Flink被誉为第四代大数据计算引擎组件,即可以用作基于离线分布式计算,也可以应用于实时计算.Flink的核心是转化为流进行计算.Flink三个核心:Source,Transforma ...
- 关系型数据库MySQL多实例
简介 MySQL数据库是一个中小型关系型数据库管理系统,软件开发者为瑞典MySQL AB公司.在2008年1月16号被Sun公司收购后Sun公司又被oracle公司收购.目前MySQL被广泛地应用在I ...
随机推荐
- Python入门习题5.蒙特卡罗方法计算圆周率
#CalPi.py from random import random from math import sqrt from time import clock DARTS = 10000000 hi ...
- java_第一年_JavaWeb(9)
JavaBean是一个遵循某种特定写法的Java类,有以下特点: 必需具有一个无参的构造函数 属性必需私有化 私有化的属性必需通过public类型的方法暴露给其它程序,其方法命名也有一定的规范 范例: ...
- [Bzoj1008][HNOI2008]越狱(组合计数)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1008 组合计数的简单题,可能越狱的方案数等于总方案数-不可能越狱的方案数,则: 总方案数 ...
- Visual Studio 插件ReSharper:代码生成工具
下载地址:http://www.jetbrains.com/resharper/download/download-thanks.html?code=RSU&platform=windows ...
- NGUI的Lebal需注意问题
1,为什么调节字体大小时,字体大小没变化,我们需要调节两个地方,如下图框柱显示 调节font size和size才可以同时控制字体的大小 2,label有时是不支持输入中文,但是支持复制进去,则这时我 ...
- Address already in use : connect
Address already in use : connect 错误以及处理 项目中有过手写并发测试,在长时间的并发测试(超过20秒,美妙超过2000)的情况下出现了以上错误 处理方法如下(抄的) ...
- linux学习-系统监控工具
系统监控工具 come from:https://blog.csdn.net/free050463/article/details/82842273top.free.vmstat.iostat.pma ...
- shell截取小数点前后的子串
- MySQL--16 MHA修复
目录 一.恢复MHA 二.MHA切换 三.配置VIP漂移 一.恢复MHA #1.修复旧主库 [root@db01 ~]# /etc/init.d/mysqld start #2.在mha日志中找到ch ...
- CentOS7.5 安装部署Apache+Mysql+Php
系统:CentOS7.5 安装Apache 安装 yum -y install httpd 开启apache服务 systemctl start httpd.service 设置apache服务开机启 ...