数据库,前端和框架须知


1.列举常见的关系型数据库和非关系型都有那些?
关系型:sqllite,db2,oracle,access,sql server MySQL
非关系型:MangoDB,redis


2.MySQL常见数据库引擎及比较?
InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),
要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,
也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。

MyISAM:插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,
那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比 较低,也可以使用。

MEMORY:所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,
对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。


3.什么是事务?MySQL如何支持事务?
事务由一个或多个sql语句组成一个整体,要么完全地执行,要么完全地不执行。四大特点:原子性、一致性、隔离性和持久性。
在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。


4.MySQL索引种类
普通索引、唯一索引、主键索引、组合索引和全文索引


5.主键和外键的区别?
主键是用于唯一标识数据库表中一行数据的。
外键是建立与表与表之前的联系,方便程序的编写


6.乐观锁和悲观锁
悲观锁, 就是很悲观,每次去拿数据的时候都认为别人会修改,
所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。
传统的关系型数据库里边就用到了很多这种锁机制,
比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。

乐观锁,就是很乐观,每次去拿数据的时候都认为别人不会修改,
所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,
可以使用版本号等机制,乐观锁适用于多读的应用类型,这样可以提高吞吐量

------------------
前端和框架:

1.HTTP协议
HTTP协议(HyperText Transfer Protocol,超文本传输协议),
是一种发布和接收 HTML页面的方法。
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),
简单讲是HTTP的安全版,在HTTP下加入SSL层。
SSL(Secure Sockets Layer 安全套接层)主要用于Web的安全传输协议,
在传输层对网络连接进行加密,保障在Internet上数据传输的安全。


2.简述jsonp及实现原理?
JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。

原理:

在同源策略下,在某个服务器下的页面是无法获取到该服务器以外的数据的,
但img、iframe、script等标签是个例外,这些标签可以通过src属性请求到其他服务器上的数据。
而JSONP就是通过script节点src调用跨域的请求。
当我们通过JSONP模式请求跨域资源时,服务器返回给客户端一段javascript代码,
这段javascript代码自动调用客户端回调函数。


3.django、flask、tornado框架的比较?
Flask 扩展丰富,冗余度小,可自由选择组合各种插件,性能优越,相比其他web框架十分轻量级,其优雅的
   设计哲学易于学习掌握,小型项目快速开发,大型项目毫无压力,FLask灵活开发,python高手基本都会喜欢flask

Django 是重量级全栈型web框架,虽然功能强大,但冗余度高,自带ORM和模板引擎,灵活和自由度不够高
   开发小型项目时显得过于臃肿与庞大

Tornado 是一个强大的、支持协程、高并发且可扩展的web服务器,发布于2009年9月,应用于FriendFeed
   Facebook等社交网站。Tornado的强项在于可以利用他的异步协程机制开发高并发的服务器系统


4.什么是wsgi?
(1)、RESTful只是设计风格而不是标准,而WSGI(Web Server Gateway Interface,Web 服务器网关接口)
则是Python语言中所定义的Web服务器和Web应用程序之间或框架之间的通用接口标准。

(2)、WSGI就是一座桥梁,桥梁的一端称为服务端或网关端,另一端称为应用端或者框架端,WSGI的作用就是在协议之间进行转化。
WSGI将Web组件分成了三类:Web 服务器(WSGI Server)、Web中间件(WSGI Middleware)与Web应用程序(WSGI Application)。

原文地址:https://www.cnblogs.com/MR-allen/p/10767990.html