mysql数据库优化课程---5、要索引和不要索引的区别是什么

一、总结

一句话总结:

索引速度快,就是查表的时候,操作的话设置索引就好了

1、数据库设计的时候不允许字段为null的好处是什么?

null要占4-5个字段:单为空的时候,不允许为null的话要么为0要么为空字符串,占一个字段

而null要占4-5个字段,所以用null做划不来

2、为什么数据表的外键使用的很少?

a、非常不灵活,当你想删某个字段的时候,会出现因为是外键删除报错很麻烦
b、外键的功能完全可以被连表所代替
c、和实际情况不符合:比如说一个用户最近乱发帖,你需要删了它,但是如果设置为外键,需要把用户所有的评论文章全部删掉,而这些评论文章没有必要全部删掉

所以外键这种太强制的约束用的少

3、删除主键之前的操作是什么?

先要把自增删了才能删主键,因为自增是字段属性

一个表只能有一个主键

alter table user2 modify id int unsigned not null;(删自增)
alter table user2 drop primary key;(删主键)

4、索引如何使用?

检索在查询的时候自己使用,而不需要我们做什么特别的操作来体现,我们要做的就是初期给哪些字段加上索引,加上什么索引

索引作用:检索加速

5、索引里面的唯一索引是什么?

就是数据库里面这个字段不能重复,重复就报错
添加了唯一索引,那么就可以快速检索这个字段了

1)添加
alter table user2 add unique u_username(username);

2)删除
alter table user2 drop index u_username;

6、主键索引和唯一索引的关系?

主键索引本身就包含唯一索引,所以主键索引中也不能重复,比如id,重复就报错

主键索引检索速度最快

唯一索引会比普通索引快

7、如何查看一个数据表user的字段情况?

desc user;

8、程序中的唯一索引检测出现的位置在哪(在php中检测还是在mysql中唯一索引)?

php中:是判断重复了php给出提示,而不是在mysql中唯一索引报错

应该在php中检测,而不是mysql中的唯一索引,

是判断重复了php给出提示,而不是在mysql中唯一索引报错

9、普通索引在数据库中的字段表示是什么?

普通索引:mul
主键索引:pri
唯一索引:uni

1)添加
alter table user2 add index i_username(username);

2)删除
alter table user2 drop index i_username;

10、要索引和不要索引的区别是什么?

要索引检测速度快,就是查表的时候

而不需要做什么特别操作啦体现索引

二、内容在总结中

字段管理:
1.添加字段
alter table user add age tinyint unsigned not null;
alter table user add pass varchar(30) not null after user;
alter table user add pass varchar(30) not null first;

2.删除字段
alter table user drop password;

3.修改字段
alter table user modify username varchar(30) not null;
alter table user change username user varchar(30) not null;

4.查看字段
desc user;

索引:
1.主键
1)添加
mysql> create table user2(
    -> id int unsigned not null auto_increment,
    -> username varchar(30) not null,
    -> primary key(id)
    -> );

mysql> create table user2(
    -> id int unsigned not null auto_increment primary key,
    -> username varchar(30) not null
    -> );

2)删除
alter table user2 modify id int unsigned not null;
alter table user2 drop primary key;

2.唯一
1)添加
alter table user2 add unique u_username(username);

2)删除
alter table user2 drop index u_username;

3.普通
1)添加
alter table user2 add index i_username(username);

2)删除
alter table user2 drop index i_username;

 

mysql数据库优化课程---5、要索引和不要索引的区别是什么的更多相关文章

  1. mysql数据库优化课程---17、mysql索引优化

    mysql数据库优化课程---17.mysql索引优化 一.总结 一句话总结:一些字段可能会使索引失效,比如like,or等 1.check表监测的使用场景是什么? 视图 视图建立在两个表上, 删除了 ...

  2. mysql数据库优化课程---18、mysql服务器优化

    mysql数据库优化课程---18.mysql服务器优化 一.总结 一句话总结: 1.四种字符集问题:字符集都设置为utf-82.slow log慢查询日志问题3.root密码丢失 1.mysql存在 ...

  3. mysql数据库优化课程---16、mysql慢查询和优化表空间

    mysql数据库优化课程---16.mysql慢查询和优化表空间 一.总结 一句话总结: a.慢查询的话找到存储慢查询的那个日志文件 b.优化表空间的话可以用optimize table sales; ...

  4. mysql数据库优化课程---15、mysql优化步骤

    mysql数据库优化课程---15.mysql优化步骤 一.总结 一句话总结:索引优化最立竿见影 1.mysql中最常用最立竿见影的优化是什么? 索引优化 索引优化,不然有多少行要扫描多少次,1亿行大 ...

  5. mysql数据库优化课程---13、mysql基础操作

    mysql数据库优化课程---13.mysql基础操作 一.总结 一句话总结:mysql复制表,索引,视图 1.mysql如何复制表? like select * 1.复制表结构 create tab ...

  6. mysql数据库优化课程---12、mysql嵌套和链接查询

    mysql数据库优化课程---12.mysql嵌套和链接查询 一.总结 一句话总结:查询user表中存在的所有班级的信息? in distinct mysql> select * from cl ...

  7. mysql数据库优化课程---9、php用什么写的

    mysql数据库优化课程---9.php用什么写的 一.总结 一句话总结:php是用c语言写的,所以php里面的那些模块什么都是c语言 c 1.php用什么写的? c php是用c语言写的,所以php ...

  8. mysql数据库优化课程---7、网站的搜索技术怎么选

    mysql数据库优化课程---7.网站的搜索技术怎么选 一.总结 一句话总结: 1.量很小(像小网站)---like2.量大一点()---标签3.量超级大(像百度)---搜索引擎 1.数据库中取一列比 ...

  9. mysql数据库优化课程---2、命令其实也就是那几个单词

    mysql数据库优化课程---2.命令其实也就是那几个单词 一.总结 一句话总结: 比如show,use,alter 1.开启和关闭mysql服务? Windows下:net start/stop m ...

随机推荐

  1. docker logspout

    https://hub.docker.com/r/jplock/rsyslog/ docker pull jplock/rsyslog:8.2.2 docker run -d -p 514:514 j ...

  2. SpringMVC 课纲

    SpringMVC 课纲 第一章 SpringMVC 架构 一个简单的 web 项目,校验器 SpringMVC 组件及相互关系 第二章 数据绑定 form标签库 第三章 Converter 和 Fo ...

  3. 201704 F-02创建财务凭证

    一.F-02 创建财务凭证-BDC 期初余额导入程序 程序:ZFIU_LDV_F_02_UPLOAD 创建F-02 凭证: *&-------------------------------- ...

  4. vs2015 安卓相关配置

    vs2015的安卓相关配置百度不到,园子里也没人写.还是我没搜索到? 看来只能靠自己的英(pin)语(yin)能力一点点解决了 安装2015这个过程没啥可说的.都安装就OK了. 重要的就是选择安卓程序 ...

  5. node+npm安裝配置

    控制臺輸入node 根據提示安裝   sudo apt-get install -g npm配置淘寶源 npm config set registry https://registry.npm.tao ...

  6. 妙用php中的register_shutdown_function和fastcgi_finish_request

    前言 在php中又两个方法都是在请求快结束的时候执行.方法名分别是 register_shutdown_function和fastcgi_finish_request.虽然执行的时机差不多,但是功能和 ...

  7. php异常处理类

    <?php header('content-type:text/html;charset=UTF-8'); // 创建email异常处理类 class emailException extend ...

  8. Loadrunder之脚本篇——参数化同行取值

    select next row 记录选择方式 Same line as,这个选项只有当参数多余一个时才会出现,其作用是根据某一个参数的行号取同一行. 例中的做法如下: 将多个参数存放在一个参数文件中: ...

  9. UI控件之UIPickerView的协议方法

    UIPickerView:选择视图,父类是UIView UIPickerView *pickerView=[[UIPickerView alloc]initWithFrame:CGRectMake(1 ...

  10. linux中搭建docker

    1.通过 vagrant ssh登录虚拟机 2.在虚拟机中通过 yum 命令安装docker 3.通过docker -v检查docker是否安装成功 4.开启docker加速器 curl -sSL h ...