Python面试笔记

总结一些Python面试被问到一些面试题和网上优秀的面试题方便自己查阅

推荐延伸阅读:关于Python的面试题

1. 为什么会出现跨域问题?

跨域问题来源于浏览器的同源策略,即只有 协议+主机名+端口号 相同(如果存在的情况)则允许相互访问。

也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。跨域问题是针对JavaScriptAjax的,html本身没有跨域问题,比如a标签, script标签等。

1
2
3
4
5
6
7
8
9
http://www.123.com/index.html 调用 http://www.123.com/server.php (非跨域)

http://www.123.com/index.html 调用 http://www.456.com/server.php (主域名不同:123/456,跨域)

http://abc.123.com/index.html 调用 http://def.123.com/server.php (子域名不同:abc/def,跨域)

http://www.123.com:8080/index.html 调用 http://www.123.com:8081/server.php (端口不同:8080/8081,跨域)

http://www.123.com/index.html 调用 https://www.123.com/server.php (协议不同:http/https,跨域)

请注意:localhost和127.0.0.1虽然都指向本机,但也属于跨域。

浏览器在执行JavaScript脚本的时候,回检查这个脚本属于哪个页面,如果不是同源页面就不会执行。

参考阅读:为什么浏览器要限制跨域访问?

2. 数据库索引的作用和优点缺点

为什么要创建索引呢?这是因为索引能够大大提高系统的性能。

第一,通过创建唯一索引,可以保证数据库表中每一行数据的唯一性。

第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。

第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

既然索引这么好,为什么不给每个列都创建一个索引呢?这是因为增加索引也有许多不利的一面。

第一,创建索引和维护索引要耗费时间,这种时间随着数据 量的增加而增加。

第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。

第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

推荐扩展阅读: 数据库索引的作用和优点缺点

知识就是财富
如果您觉得文章对您有帮助, 欢迎请我喝杯水!