知识点找回2.0

感觉接触的太多,或者时间已久。好多东西都模糊不清了,不过学过的东西,当然是很快可以找回来的啦。

Servlet(server Applet),全称Java Servlet, 是用java编写的服务器端程序。而这些Servlet都要实现Servlet的这个借口,其主要的功能在交互的浏览和修改数据,生成动态的web。Servlet运行支持于java的服务器中。

HttpServlet重写了doGet和doPost方法,或者也可以重写service方法完成对get和post的请求相应。

简单的说一下servlet的生命周期。 servlet有良好的生存期定义,包括加载和实列化,初始化,请求处理,服务结束。这个生存期由javax.servlet.Servlet接口的init,service和destory方法表达。

加载Servlet的class--->实列化Servlet--->调用Servlet的init完全初始化--->相应请求(Service的service方法)--->Servlet容器关闭时(Service的destory方法)

Servlet中forward()与redirect()的区别。 1.0 forward是服务器端的转向,而redirect是客户端的跳转。 2.0 使用forward浏览器地址不会改变,而direct会改变。 3.0 forward是一次请求完成,而direct是重新发起请求。 4.0 Forward在服务器端完成,不用在客户端重新请求,效率更高。

jsp和servlet有哪些相同点和不同点? Jsp是servlet的扩展,所有的jsp文件都会被翻译成一个继承HttpServlet的类。也就是jsp最终也是一个Servlet,这个Servlet对外提供服务。 不同点在于:Servlet的应用逻辑是在java文件中,并且完全从表示层的html分离,而jsp的情况是java和html组合成一个扩展名为.jsp的文件,jsp侧重视图,servlet主要用于逻辑控制。

数据库优化 定位: 查找,定位慢查询,并优化。 创建索引,创建合适的索引,就可以在索引中查询,查询到以后直接找对应的记录。 分表 ,当一个表的数据比较多或者一张表的某些字段的值比较多并且很少使用时,采用水平分表或者垂直分表。 读写分离,当一台服务器不能满足需求时,采用读写分离的方式进行集群。 缓存,使用redis进行缓存。

定位,查找,定位慢查询, 在项目自验项目测试之前,在启动mysql数据库时开启慢查询,并把查询慢的语句写到日志中,并运行一定时间后,通过日志找到慢查询语句。

数据库优化之遵循方式。 1NF,表的列具有原子性,不可分解,列不可分解。 2NF,表中的记录是唯一的,通过我们设计一个主键来维护。 3NF,表中不要有数据冗余,就是说表的信息能够被推导出来,就不应该单独设计一个字段来存放(外键)

选择合适的储层引擎 在并发中,我们经常使用存储引擎myisam/innodb/memory myisam存储引擎 如果对事务要求不高,同时以查询添加为主,没有考虑使用myisam存储引擎,比如bbs中的发帖,回复等。 Innodb存储引擎 对事务要求高,保存的数据都是重要的数据,我们建议用INNODB,比如表单,账号等。 Memory存储引擎 我们的数据变化频繁,不需要入库,同时又频繁的查询和修改,我们考虑使用memory,速度极快。

Myisam和Innodb的区别 1.0 事务安全myisam不支持事务而Innodb支持。 2.0 查询和添加速度,myisam不支持事务就不用考虑同步锁,查找和添加速度快。 3.0 Myisam支持全文索引,Innodb不支持全文索引。 4.0 Myisam不支持外键,Innodb支持外键(通常不设置外键,通常在程序中保持数据一致。)

索引,帮助DBMS高效获取数据的数据结构。 分类:普通索引/唯一索引/主键索引/全局索引。 普通索引:允许出现重复的值。 唯一索引:除了不能有重复的记录外,其它和普通索引一样(用户名,用户身份证。) 主键索引:随着设定主键而创建,也就是把某列设为主键的时候,数据库就会给该列设为索引。 全文索引:用来对表中的文本(char,varchar,text)进行索引。

索引的弊端 1.0 占用磁盘空间 2.0 对dml(插入,修改,删除)操作有影响,变慢。 总结:满足以下条件的字段,才被创建索引。 a:在where条件下经常使用。 b:该字段的内容不是唯一的几个值。 c:字段内容不会频繁变化

数据库的分表 分表分为水平(按照行)分表和垂直(按照列)分表 mysql表的数据一般到达百万级别,查询效率会很低,容易造成表锁,水平分表。 如果一张表中的数据字段非常多(长文本,二进制等),并且只有很少的情况下会查询。这个时候就可以把字段多个单独放到一个表,通过外键关联。采用垂直分表 水平分表的策略 1.0 按照时间分表, 这个分表有一定的局限性,当前的数据有较强的时效性。 2.0 按照区间范围分表。 3.0 hash分表 通过一个原始目标的id或者名称通过一定的hash算法计算出数据存储表的表名。

数据库的读写分离 一个数据库支持的最大并发链接数是有限的,如果用户的并发访问太多,一台服务器满足不了要求,就可以集群处理。mysql的集群处理技术最常用的就是读写分离。 主从同步 主从同步,数据库最终会把数据持久化到硬盘中,如果集群必须保证每一个数据库的服务器的数据是一致的,能改变数据库的操作都往主数据写,而其他的数据库从主数据库上同步。 读写分离 使用负载均衡来实现写的操作都往主数据去,而读的操作往从服务器去。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏郭霖

Android数据库高手秘籍(一)——SQLite命令

要想熟练地操作任何一个数据库,最最基本的要求就是要懂SQL语言,这也是每个程序员都应该掌握的技能。虽说SQL博大精深,要想精通确实很难,但最基本的一些建表命令,...

222100
来自专栏程序员历小冰

MySQL探秘(三):InnoDB的内存结构和特性

 常言说得好,每个成功男人背后都有一个为他默默付出的女人,而对于MySQL来说,这个“人”就是InnoDB存储引擎。  MySQL区别于其他数据库的最为重要的特...

16720
来自专栏闵开慧

mysql性能调优

mysql调优思路: 1.数据库设计与规划--以后再修该很麻烦,估计数据量,使用什么存储引擎  2.数据的应用--怎样取数据,sql语句的优化  3.mysql...

43350
来自专栏技术问题

MySQL探秘(三):InnoDB的内存结构和特性

常言说得好,每个成功男人背后都有一个为他默默付出的女人,而对于MySQL来说,这个“人”就是InnoDB存储引擎。  MySQL区别于其他数据库的最为重要的特点...

7000
来自专栏杨建荣的学习笔记

关于修改分区表的准备和操作细则(r3笔记26天)

在之前的博文中,讨论过一个根据分区键值发现性能问题的案例。90%以上的数据都分布在了一个分区上,其它的分区要么没有数据要么数据很少,这是很明显的分区问题。当然这...

31760
来自专栏CSDN技术头条

应当使用 SQLite 的五个原因

SQLite 是非常优秀的数据库,能够在真实的生产环境中完成一些真正的工作。本文将列出五个我认为在2016年应当选用 SQLite 的原因。 ? 便于管理 不知...

30780
来自专栏PPV课数据科学社区

Android数据库高手秘籍(一)——SQLite命令

要想熟练地操作任何一个数据库,最最基本的要求就是要懂SQL语言,这也是每个程序员都应该掌握的技能。虽说SQL博大精深,要想精通确实很难,但最基本的一些建表命令,...

39350
来自专栏Linyb极客之路

MySQL 之 SQL 优化实战记录

N个机台将业务数据发送至服务器,服务器程序将数据入库至MySQL数据库。服务器中的javaweb程序将数据展示到网页上供用户查看。

14310
来自专栏王磊的博客

后台设计中容易被忽略的坑

1.数据关联性删除判断   示例:比如后台发布了一个待抢购的订单,app已经把此单抢购,因为后台没有及时刷新状态,所有如果要删除或下架此笔订单,必须先要验证此订...

390100
来自专栏企鹅号快讯

一枚女程序员眼中的mysql,值得收藏

某群聊天内容 什么是数据库? ‍‍数据库(Database)是按照数据结构来组织、存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管...

43280

扫码关注云+社区

领取腾讯云代金券