zoukankan      html  css  js  c++  java
  • Hadoop面试总结(二)MySQL

    Mysql

    char、varchar的区别是什么?

    (1)、varchar是变长而char的长度是固定的。如果你的内容是固定大小的,你会得到更好的性能。

    (2)、varchar(50)中50的涵义最多存放50个字符,varchar(50)和(200)存储hello所占空间一样,但后者在排序时会消耗更多内存,因为order by col采用fixed_length计算col长度(memory引擎也一样)
     
    (3)、int(20)中20的涵义是指显示字符的长度但要加参数的,最大为255,比如它是记录行数的id,插入10笔资料,它就显示00000000001 ~~~00000000010,当字符的位数超过11,它也只显示11位,如果你没有加那个让它未满11位就前面加0的参数[ZEROFILL],它不会在前面加020表示最大显示宽度为20,但仍占4字节存储,存储范围不变;
                      (是指显示字符的长度,不影响内部存储,只是当定义了ZEROFILL时,前面补多少个 0)
     

    请说明varchar和text的区别

    • varchar可指定字符数,text不能指定,内部存储varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),text是实际字符数+2个字节。

    • text类型不能有默认值。

    • varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,在都创建索引的情况下,text的索引几乎不起作用。

    • 查询text需要创建临时表。

    什么是触发器,MySQL中都有哪些触发器?

    触发器是指一段代码,当触发某个事件时,自动执行这些代码。在MySQL数据库中有如下六种触发器:

    • 1、Before Insert

    • 2、After Insert

    • 3、Before Update

    • 4、After Update

    • 5、Before Delete

    • 6、After Delete

    MySQL事务处理

    • MySQL提供事务处理的表引擎,也就是InnoDB。

    • 服务器层不管理事务,由下层的引擎实现,所以同一个事务中,使用多种引擎是不靠谱的。

    • 需要注意,在非事务表上执行事务操作,MySQL不会发出提醒,也不会报错。

    请说明InnoDB和MyISAM的区别

    • InnoDB支持事务,MyISAM不支持;

    • InnoDB数据存储在共享表空间,MyISAM数据存储在文件中;

    • InnoDB支持行级锁,MyISAM只支持表锁;

    • InnoDB支持崩溃后的恢复,MyISAM不支持;

    • InnoDB支持外键,MyISAM不支持;

    • InnoDB不支持全文索引,MyISAM支持全文索引;

  • 相关阅读:
    从官方下载 Bootstrap 版本 并写 第一个页面
    南阳477
    南阳463
    南阳455
    南阳399
    南阳276
    南阳275
    南阳268
    南阳264
    南阳263
  • 原文地址:https://www.cnblogs.com/Vowzhou/p/11245301.html
Copyright © 2011-2022 走看看