zoukankan      html  css  js  c++  java
  • mysql数据库优化课程---5、要索引和不要索引的区别是什么

    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;

     
  • 相关阅读:
    用wamp配置的环境,想用CMD连接mysql怎么连
    Mysql删除表
    MySQL创建表
    Leetcode 130. Surrounded Regions
    Leetcode 111. Minimum Depth of Binary Tree
    Leetcode 110. Balanced Binary Tree
    Leetcode 98. Validate Binary Search Tree
    Leetcode 99. Recover Binary Search Tree
    Leetcode 108. Convert Sorted Array to Binary Search Tree
    Leetcode 105. Construct Binary Tree from Preorder and Inorder Traversal
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9751122.html
Copyright © 2011-2022 走看看