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;

 

最新文章

  1. 小兔Java教程 - 三分钟学会Java文件上传
  2. JS性能优化
  3. floyd算法
  4. jq实现全选、全不选、反选
  5. NPOI MVC 模型导出Excel通用类
  6. Linux socket多进程服务器框架三
  7. Eclipse调试常用技巧(转)
  8. MATLAB学习笔记(十)——MATLAB图形句柄
  9. 夺命雷公狗---linux之centos的安装
  10. 剑指offer系列44---只出现一次 的数字
  11. 广义线性模型 GLM
  12. Juniti学习总结
  13. MVC不错的学习资料
  14. 海康SDK编程指南(C#二次开发版本)
  15. sqlite创建数据库并创建一个表
  16. jquery 功能强大的下拉菜单
  17. linux下安装部署环境:jdk、tomcat、nginx
  18. node.js之路由,中间件,ge请求和post请求的参数
  19. ubuntu安装界面 会出现不完整情况
  20. shell 脚本使用记录

热门文章

  1. 如何避免升级 Linux 实例内核后无法启动
  2. Avoiding Full Table Scans
  3. 【转】【Spring实战】Spring注解配置工作原理源码解析
  4. ArcGIS Server Q&A
  5. python多进程理论
  6. ACM中使用 JAVA v2. 1
  7. 入坑第二式 golang入坑系列
  8. redis3.2.11多机多实例集群部署及测试连接情况
  9. Some day some time we will do
  10. 剑指offer 面试55题