技术栈
##后端
spring springMVC mybatis
##数据库
mysql5.5+
##web容器
tomcat9
##IDE
eclipse2018-9
前言
o2o项目希望完成一个文件共享系统,采用现阶段公司常用技术来实现,例如Redis,spring、springmvc、 Mybatis, Nginx等。总的目的是用来熟悉这些技术。
前言
项目介绍
项目演示
用户端演示
商家端演示
管理端演示
技术选型
后端技术
前端技术
环境搭建
开发工具
开发环境
搭建具体环境
相关学习文档
数据库设计
前后端接口文档
本项目面试总结
MySQL存储引擎InnoDB与Myisam的区别
mysql主从分离
搭建具体环境
项目介绍
file_management_sys 是一个文件共享系统,包括前端文件展示系统和后台管理系统,基于SpringBoot + MyBatis实现。
项目演示
用户端演示
商家端演示
管理端演示
搭建具体环境(docker搭建,基于centos 7)
首先安装docker,启动docker systemctl start docker. 注意: 当各个容器启动后,在服务器端的安全组一定要配置相应端口,不然外部访问不到。
1.安装 MySQL
1.1 拉取最新镜像 docker pull centos/mysql-57-centos7
1.2 运行一个容器 docker run -id --name=mysql-57-centos7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=717294 centos/mysql-57-centos7
2.安装 Redis 4.0.10
2.1 拉取redis镜像 docker pull redis
2.2 运行redis容器 docker run -id --name=redis -p 6379:6379 redis
3.安装 RocketMQ 4.6.0
4.安装 nginx1.16.1
4.1 安装相关环境
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
4.2 获取 安装包 wget -c https://nginx.org/download/nginx-1.16.1.tar.gz
4.3 解压安装
tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure
make install
4.4 运行
cd /usr/local/nginx/sbin/
./nginx
相关学习文档
技术 说明 网址
Spring Data Elasticsearch spring data整合 Elasticsearch https://github.com/spring-projects/spring-data-elasticsearch/blob/master/README.adoc
RocketMQ 阿里中间件团队博客 http://jm.taobao.org/2017/01/12/rocketmq-quick-start-in-10-minutes/
数据库设计
前后端接口文档
MySQL存储引擎InnoDB与Myisam的区别
MyISAM InnoDB
构成上的区别 每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex)。 基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB
事务处理上方面 MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持 InnoDB提供事务支持事务,外部键(foreign key)等高级数据库功能
SELECT UPDATE,INSERT,Delete,操作 如果执行大量的SELECT,MyISAM是更好的选择 1.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表
2.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。3.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用
与 MyISAM相同的一点是,InnoDB 也采用 B+Tree这种数据结构来实现 B-Tree索引。而很大的区别在于,InnoDB 存储引擎采用“聚集索引”的数据存储方式实现B-Tree索引,所谓“聚集”,就是指数据行和相邻的键值紧凑地存储在一起,注意 InnoDB 只能聚集一个叶子页(16K)的记录(即聚集索引满足一定的范围的记录),因此包含相邻键值的记录可能会相距甚远。在 InnoDB 中,表被称为 索引组织表(index organized table),InnoDB 按照主键构造一颗 B+Tree (如果没有主键,则会选择一个唯一的并且非空索引替代,如果没有这样的索引,InnoDB则会隐式地定义一个主键来作为聚集索引),同时叶子页中存放整张表的行记录数据,也可以将聚集索引的叶子节点称为数据页,非叶子页可以看做是叶子页的稀疏索引。
全表扫描
当InnoDB做全表扫描时并不高效,因为 InnoDB 实际上并没有顺序读取,在大多情况下是在随机读取。做全表扫描时,InnoDB 会按主键顺序扫描页面和行。这应用于所有的InnoDB 表,包括碎片化的表。如果主键页表没有碎片(存储主键和行的页表),全表扫描是相当快,因为读取顺序接近物理存储顺序。但是当主键页有碎片时,该扫描就会变得十分缓慢
行级锁
提供行锁(locking on row level),提供与 Oracle 类型一致的不加锁读取(non-locking read in SELECTs),另外,InnoDB表的行锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表 表级锁
小结:Innodb强调多功能性,支持的拓展功能比较多,myisam主要侧重于性能
区别
1、InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务;
2、InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而MyISAM是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。
3、InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描。而MyISAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快;
4、Innodb不支持全文索引,而MyISAM支持全文索引,查询效率上MyISAM要高; ---------------------------------------------------------------------划水线---------------------------------------------
mysql主从分离
-----------------------------------------划水---------------------------------------------------------------------------- 数据库层面主从分离配置
将读操作和写操作分离到不同的数据库上,避免主服务器出现性能瓶颈
主服务器进行写操作时,不影响查询应用服务器的查询性能,降低阻塞,提高并发
数据拥有多个容灾副本,提高数据安全性,同时当主服务器故障时,可立即切换到其他服务器,提高系统可用性 代码层面读写分离 当mysql服务器只有一台的时候,可能又以下的问题:1.读和写所有压力都由一台数据库承担,压力大 2.数据库服务器磁盘损坏则数据丢失,单点故障
解决方案:准备两台MySQL,一台主(Master)服务器,一台从(Slave)服务器,主库的数据变更,需要同步到从库中(主从复制)。而用户在访问我们项目时,如果是写操作(insert、update、delete),则直接操作主库;如果是读(select)操作,则直接操作从库(在这种读写分离的结构中,从库是可以有多个的),这种结构我们称为 读写分离 。
MySQL数据库默认是支持主从复制的。
MySQL主从复制是一个异步的过程,底层是mysql数据库自带的二进制功能,就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制,然后再解析日志并应用到自身,最终实现从库和主库的数据保持一致。
二进制日志:二进制日志BINLOG记录了所有DDL数据定义语言和DML数�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 基于ssm和springboot的校园商铺系统源码.zip基于ssm和springboot的校园商铺系统源码.zip基于ssm和springboot的校园商铺系统源码.zip基于ssm和springboot的校园商铺系统源码.zip基于ssm和springboot的校园商铺系统源码.zip基于ssm和springboot的校园商铺系统源码.zip 基于ssm和springboot的校园商铺系统源码.zip基于ssm和springboot的校园商铺系统源码.zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
基于ssm和springboot的校园商铺系统源码.zip (122个子文件)
.classpath 2KB
org.eclipse.wst.common.component 918B
org.eclipse.wst.jsdt.ui.superType.container 49B
.gitignore 204B
shopoperation.html 6KB
o2o.iml 5KB
ShopManagementController.java 6KB
ShopDaoTest.java 5KB
ShopServiceImpl.java 3KB
ImageUtil.java 3KB
Product.java 2KB
Shop.java 2KB
ShopExecution.java 2KB
ShopServiceTest.java 2KB
ShopCategory.java 2KB
PersonInfo.java 2KB
AreaController.java 1KB
HeadLine.java 1KB
HttpServletRequestUtil.java 1KB
Area.java 1KB
LocalAuth.java 1KB
ProductImg.java 1KB
ProductCategory.java 991B
PathUtil.java 907B
ShopStateEnum.java 792B
WechatAuth.java 753B
ShopAdminController.java 720B
ShopCategoryServiceImpl.java 628B
AreaServiceImpl.java 617B
ShopService.java 603B
ShopCategoryDaoTest.java 570B
CodeUtil.java 552B
AreaDaoTest.java 524B
AreaServiceTest.java 513B
BaseTest.java 476B
ShopDao.java 362B
ShopCategoryDao.java 291B
ShopOperationException.java 238B
AreaDao.java 232B
ShopCategoryService.java 223B
AreaService.java 159B
head.jpg 70KB
studynew3.jpg 28KB
study.jpg 25KB
study.jpg 25KB
studynew.jpg 9KB
studynew2.jpg 815B
sm.min.js 107KB
shopoperation.js 2KB
common.js 105B
.jsdtscope 626B
o2oApi.postman_collection.json 340B
index.jsp 52B
info.log 0B
access.log 0B
PracticeGit.md 399B
org.eclipse.wst.jsdt.ui.superType.name 6B
bugforidea.png 1.72MB
bugforeclipse.png 337KB
watermark.png 9KB
watermark.png 9KB
QQ浏览器截图20221110102619.png 5KB
org.eclipse.jdt.core.prefs 469B
org.eclipse.m2e.core.prefs 86B
org.eclipse.core.resources.prefs 85B
org.eclipse.wst.validation.prefs 48B
.project 1KB
jdbc.properties 162B
o2o2.sql 12KB
o2o.sql 12KB
说明文档.txt 15KB
系统实体类解析.vsdx 54KB
pom.xml 6KB
o2o_war_exploded.xml 4KB
ShopDao.xml 3KB
web.xml 3KB
spring-dao.xml 3KB
spring-web.xml 2KB
logback.xml 2KB
Project_Default.xml 1KB
encodings.xml 1KB
spring-service.xml 1KB
ShopCategoryDao.xml 913B
jarRepositories.xml 868B
mybatis-config.xml 690B
Maven__org_springframework_spring_expression_4_3_7_RELEASE.xml 673B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_8_0.xml 659B
Maven__org_springframework_spring_context_4_3_7_RELEASE.xml 652B
Maven__org_springframework_spring_webmvc_4_3_7_RELEASE.xml 645B
Maven__org_springframework_spring_beans_4_3_7_RELEASE.xml 638B
Maven__com_fasterxml_jackson_core_jackson_databind_2_8_7.xml 638B
Maven__org_springframework_spring_test_4_3_7_RELEASE.xml 631B
Maven__org_springframework_spring_core_4_3_7_RELEASE.xml 631B
Maven__org_springframework_spring_jdbc_4_3_7_RELEASE.xml 631B
Maven__org_springframework_spring_web_4_3_7_RELEASE.xml 624B
Maven__org_springframework_spring_aop_4_3_7_RELEASE.xml 624B
Maven__commons_fileupload_commons_fileupload_1_3_1.xml 620B
compiler.xml 618B
Maven__commons_collections_commons_collections_3_2.xml 617B
Maven__org_springframework_spring_tx_4_3_7_RELEASE.xml 617B
共 122 条
- 1
- 2
资源评论
FL1623863125
- 粉丝: 8810
- 资源: 4507
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功