Mysql面试题1

依旧是:看到了就放这

1.

问题
统计行数count()、count(1)、count(column)的区别
答案
性能比较:count(
) = count(1) > count(column)
count()和count(1)两者的统计方式完全相同,包含null的行。
count(column) 如果列定义时不允许为null,那么统计满足查询条件的不为null的总行数。
Mysql面试题1

2.

问题 慢查询怎么发现
参考:
https://www.cnblogs.com/zhncnblogs/p/13960137.html
https://www.cnblogs.com/qmfsun/p/4844472.html

3.

问题 delete删除的数据,这条数据的存储空间会得到释放吗
不会
Mysql面试题1

4.

问题 drop trancate delete用法
答案
1.truncate是DDL,delete是DML命令,所以truncate命令更准确的说是修改表的定义(属性);
2.truncate不支持事务回滚,而delete支持事务回滚;

DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。
TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。

3.如果表的主键是自增的,那么使用truncate清空表后会初始化自增属性(重新从1开始自增);而delete删除所有数据后,主键自增属性不会被初始化,接着清除数据前的自增值继续自增。
4 表和索引所占空间
当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小,
DELETE操作不会减少表或索引所占用的空间。
5应用范围
TRUNCATE 只能对TABLE; DELETE可以是table和view
6.drop语句将表所占用的空间全释放掉。TRUNCATE 和DELETE只删除数据, DROP则删除整个表(结构和数据)。
参考:https://www.cnblogs.com/zhizhao/p/7825469.html 啊啊啊太多了背不上

5.

问题 vachar和char的区别
答案
1.都是字符串
2.大小不一样。char是255个字节,varchar是65535个字节
3.类型不一样。char是定长,varchar不定长