在spring-boot&hibernate应用程序中使用xtradb作为存储引擎

ukxgm1gy  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(359)

我正在使用SpringBoot2.0.3、Hibernate5.2.17和Mariadb10.1.29开发一个项目。我试图在hibernate生成表时将存储引擎设置为xtradb,但没有成功。
这是我的application.properties文件:

spring.thymeleaf.cache=false

spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.url=jdbc:mariadb://localhost:3306/bookstore-db
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=****
spring.datasource.hikari.connection-timeout=20000
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.maximum-pool-size=12
spring.datasource.hikari.idle-timeout=300000
spring.datasource.hikari.max-lifetime=1200000
spring.datasource.hikari.auto-commit=true

spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDB53Dialect
spring.jpa.properties.hibernate.dialect.storage_engine=xtradb

spring.jpa.hibernate.ddl-auto=update

即使指定 spring.jpa.properties.hibernate.dialect.storage_engine=xtradb 它仍然使用innodb,如控制台所示:

create table hibernate_sequence (
   next_val bigint
) engine=InnoDB
Hibernate: 

insert into hibernate_sequence values ( 1 )
Hibernate: 

create table user (
   id_user bigint not null,
    email varchar(255) not null,
    enabled bit not null,
    first_name varchar(255),
    last_name varchar(255),
    password varchar(255),
    phone varchar(255),
    username varchar(255),
    primary key (id_user)
) engine=InnoDB

谢谢你的帮助。

nfg76nw0

nfg76nw01#

好吧,innodb被用作mariadb 10.2以来的默认和最佳选择。这些就是他们网站上提到的原因
xtradb在5.1和5.5版本中比innodb有很多很大的改进。但随着时间的推移,mysql已经实现了几乎所有的功能。innodb已经赶上了,xtradb只是稍微好一点。。。
特别是,xtradb5.7唯一真正的改进似乎是针对写密集型i/o绑定工作负载,其中禁用了innodb\u线程\u并发控制。
因此,对于那些使用mariadb最新版本的人来说,没有更多的理由切换到xtradb。

相关问题