Hibernate、Mybait,Mysql、Postgresql适用场景

传统系统
(1)单数据库,单表数据量<1000W,Hibernate+Mysql
(2)单数据库,单表数据量>1000W,Hibernate+Postgresql

互联网系统
(1)主从数据库,读写分离,Hibernate+Mysql
(2)垂直水平切分数据库,路由规则+Jdbc+Mysql

Mysql:用的人多,解决方案成熟,使用方便,单表数据量增大,性能下降明显
Postgresql:相对于Mysql使用复杂一点,单表数据量增大,性能影响不大
Hibernate:对Jdbc的封装,注解映射数据库字段与对象的关系,支持零SQL、HQL、自定义SQL(高性能要求的地方自己写SQL)
Mybait:对Jdbc的封装,相对于Hibernate性能相差不远,全自定义SQL,人员足够多的情况下,可以替换Hibernate

总体,不用纠结于Hibernate、Mybait谁快谁慢,Hibernate要用10台服务器部署,Mybait一样要10台,不可能说Mybait用8台或者5台,到了要垂直水平切分数据库的程度,基本都是自己写框架了。Mysql与Postgresql在单数据库,数据量不同的情况下确实有差异,Mysql有大量的实践、方案是优势

时间: 2024-11-03 21:27:31

Hibernate、Mybait,Mysql、Postgresql适用场景的相关文章

hibernate 连接 mysql 乱码的情况

在本地开发环境中,一切正常,部署到服务器后(windows 2003 + tomcat)含有中文的查询和表单提交都有乱码,从以下几个方面检查并解决了问题: 1.将所有jsp.js.css文件默认编码改为了utf-8,未解决问题. 2.struts2的配置文件中加入了节点:<constant name="struts.i18n.encoding" value="UTF-8" />  ,未解决问题. 3.web.xml中做如下确认和修改,未解决问题. <

hibernate设置mysql的timestamp默认值技巧

首先,要想使用数据库中配置的默认值就必须不让hibernate覆盖了默认值,需要配置property insert="false" update="false",告诉hibernate不对该属性执行insert.update操作,这要就不会覆盖我们在数据库中配置的默认值了.除此之外,我们还需要配置hibernate对该表的操作,dynamic-insert="true" dynamic-update="true", 实现动态的

hibernate 中mysql的id生成策略

数据库的规划和操作号码大全中,咱们一般会给表建立长尾关键词挖掘工具的主键. 主键,可以分为天然主键和署理主键. 天然主键表明:选用具有事务逻辑意义的字段作为表的主键.比方在用户信息表中,选用用户的身份证号码作为主键.可是这样一来,跟着事务逻辑的变化,主键就有可能要更改.比方,假定哪天身份证号码升级成19,2位,那....... 署理主键:在表中人为的添加一个字段,该字段并没有表明任何的事务逻辑,仅仅用来标识一行数据.比方说在用户信息表中,添加一个用户ID的字段.用来表明该条用户信息的记录. 一般

hibernate连接mysql,查询条件中有中文时,查询结果没有记录,而数据库有符合条件的记录(解决方法)

今天在另一台服务器上重新部署了网站,结果出现了以下问题: ——用hibernate做mysql的数据库连接时,当查询条件中有中文的时候,查询结果没有记录,而数据库中是存在符合条件的记录的. 测试了以下,发现不加条件查询可以查到,加上查询条件包含中文就无法找到记录. 百度发现,以下两篇文章很有帮助. http://gzxabcdefg.blog.163.com/blog/static/23451794201081554816892/ http://bbs.51cto.com/thread-1031

一次hibernate+c3p0+mysql连接池java.net.SocketException: Connection reset故障的解决笔记

hibernate 有自带的连接池,但大家用起来颇有微词,因为其稳定性以及性能都不太好.c3p0 连接池的性能和稳定性久经考验,所以用 hibernate 的朋友一般都使用 c3p0 的连接池.那么是不是把 c3p0 的包导进来,然后 hibernate.cfg.xml 里把 c3p0 的各种属性加进来就万事大吉了呢?不见得,很可能你的项目上线以后,发现你的连接池不仅性能低下,而且可靠性差,c3p0 并没有表现出它传说中应该具有的那些特性.你在咒骂 c3p0 的可靠性以及高性能的时候,有没有想过

Hibernate连接mysql数据库并自动创建表

天才第一步,雀氏纸尿裤,Hibernate第一步,连接数据库. Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. 所以说,Hibernate讲白了就是简化了与数据库之间的操作,那么要玩转它自然就得连接上数据库咯.(与Hibernate对应的orm框架还有Mybatis,只不过M

Hibernate+maven+mysql

最近在研究hibernate,想建立一个简单的Hibernate+maven+mysql工程,网上找了一大堆的示例,要么看不懂结构,要么就是缺少必要文件.总之都没有成功,结果无意在一个外文网上找了一个实例,惊叹于人家的排版.也不得不感叹的说下浩瀚的百度里,想找到自己想要的东西是多么难啊! 以下借鉴人家文章和内容并做部分补充,以供初学者一起分享: (准备工作myeclipse的安装+maven的下载+mysql的配置略过) 1.mysql中建一个mkyong的数据库,其下面新建一个stock的空表

Asp.Net Core 轻松学-使用MariaDB/MySql/PostgreSQL和支持多个上下文对象

前言 在上一篇文章中(Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库)[https://www.cnblogs.com/viter/p/10243577.html],介绍了 EFCore 连接 MSSQL 的使用方法,在本章中,将继续介绍如何利用 EFCore 连接到 MariaDB/MySql 和 PostgreSQL 数据库,同时,在一个项目中,如何添加多个数据库上下文对象,并在业务中使用多个上下文对象,通过这两章的学习,你将掌握使用 EFCore 连接 MS

Hibernate连接MySQL

1 下载hibernate-3.6.0 Final.zip到任意目录,解压缩后得到hibernate目录 2 下载slf4j-1.7.13.zip到任意目录,解压缩后得到slf4j-1.7.13 3 在test库中创建student表 msql -localhost -u root –p use test create table student(NO char(20),name varchar(20),primarykey(NO)); 4 创建一个名为HibernateDemo的JavaPro