我正在使用Spring Boot 2.0.3,Hibernate 5.2.17和MariaDB 10.1.29开发一个项目。而且我试图在休眠生成表时将存储引擎设置为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
谢谢你的帮助。
最佳答案
好吧,自MariaDB 10.2起,InnoDB被用作默认和最佳选择。这些是它们的site中提到的原因
与5.1和5.5中的InnoDB相比,XtraDB进行了许多重大改进。但是随着时间的流逝,MySQL几乎实现了所有这些。 InnoDB迎头赶上,而XtraDB仅略胜一筹...
特别是,XtraDB 5.7似乎唯一真正的改进是针对写入密集型I / O绑定的工作负载,其中innodb_thread_concurrency控件被禁用。
因此,对于使用最新版本的MariaDB的用户,没有更多的理由切换到XtraDB。