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