设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 运营中心 > 交互 > 正文

《2019年小米春季上海 PHP 实习生招聘面试题》部分答案解析(2)

发布时间:2020-12-24 18:07 所属栏目:31 来源:网络整理
导读:如果使用共享表空间,那么所有表的数据文件和索引文件都保存在一个表空间里,一个表空间可以有多个文件,通过 innodb_data_file_path 和 innodb_data_home_dir 参数设置共享表空间的位置和名字,一般共享表空间的名

如果使用共享表空间,那么所有表的数据文件和索引文件都保存在一个表空间里,一个表空间可以有多个文件,通过 innodb_data_file_path 和 innodb_data_home_dir 参数设置共享表空间的位置和名字,一般共享表空间的名字叫 ibdata1-n。

如果使用多表空间,那么每个表都有一个表空间文件用于存储每个表的数据和索引,文件名以表名开头,以.ibd 为扩展名。

三、索引差异

1.关于自动增长

myisam 引擎的自动增长列必须是索引,如果是组合索引,自动增长可以不是第一列,他可以根据前面几列进行排序后递增。

innodb 引擎的自动增长咧必须是索引,如果是组合索引也必须是组合索引的第一列。

2.关于主键

myisam 允许没有任何索引和主键的表存在,

myisam 的索引都是保存行的地址。

innodb 引擎如果没有设定主键或者非空唯一索引,就会自动生成一个 6 字节的主键 (用户不可见)

innodb 的数据是主索引的一部分,附加索引保存的是主索引的值。

3.关于 count () 函数

myisam 保存有表的总行数,如果 select count(*) from table; 会直接取出出该值

innodb 没有保存表的总行数,如果使用 select count(*) from table; 就会遍历整个表,消耗相当大,但是在加了 where 条件后,myisam 和 innodb 处理的方式都一样。

4.全文索引

myisam 支持 FULLTEXT 类型的全文索引

innodb 不支持 FULLTEXT 类型的全文索引(5.6 开始已经支持了),但是 innodb 可以使用 sphinx 插件支持全文索引,并且效果更好。(sphinx 是一个开源软件,提供多种语言的 API 接口,可以优化 mysql 的各种查询)。

5.delete from table

使用这条命令时,innodb 不会从新建立表,而是一条一条的删除数据,在 innodb 上如果要清空保存有大量数据的表,最 好不要使用这个命令。(推荐使用 truncate table,不过需要用户有 drop 此表的权限)。

6.索引保存位置

myisam 的索引以表名 +.MYI 文件分别保存。

innodb 的索引和数据一起保存在表空间里。

20 丶 MySQL 中的索引有几种

一、普通索引

最基本的索引,只是加快了查询速度。

二、唯一索引

与普通索引类似,不同的是:索引的列值必须唯一,但允许有空值,也就是 null,如果是组合索引,则列值的组合必须是唯一的。

三、主键索引

即我们常用的主键 id,它是一种特殊的唯一索引,不允许有空值,一般在建表时同时创建主键索引。

特点:

1)一张表只有一个主键索引

2)主键要求自增

四、组合索引

即多个字段建立的索引

五、全文索引

fulltext

myisam 引擎支持

六、外键

建立外键需要注意的事项:

1)表引擎必须一样

2)字段类型必须一样

3)长度必须一样

4)存储范围必须一样

5)约束字段必须在被引用的字段中出现过

以上是文章全部内容,有需要学习交流的友人请加入swoole交流群的咱们一起,有问题一起交流,一起进步!前提是你是学技术的。感谢阅读!

点此加入该群

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读