- 2024-12-22 11:23:49
- 9166 热度
- 0 评论
什么是MariaDB
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存储引擎。
MariaDB直到5.5版本,均依照MySQL的版本。因此,使用MariaDB5.5的人会从MySQL 5.5中了解到MariaDB的所有功能。
从2012年11月12日起发布的10.0.0版开始,不再依照MySQL的版号。10.0.x版以5.5版为基础,加上移植自MySQL 5.6版的功能和自行开发的新功能。
Mariadb下载
https://downloads.mariadb.org/
MariaDB的慢查询,全名是慢查询日志,是MariaDB提供的一种日志记录,用来记录在MariaDB中响应时间超过阀值的语句。
具体环境中,运行时间超过long_query_time值的SQL语句,则会被记录到慢查询日志中。
long_query_time的默认值为10,意思是记录运行10秒以上的语句。
默认情况下,MariaDB数据库并不启动慢查询日志,需要手动来设置这个参数。
当然,如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会或多或少带来一定的性能影响。
慢查询日志支持将日志记录写入文件和数据库表。
查看一下mariadb是否开启慢查询:
show variables like 'slow_query%';
查看慢查询时间设置为多少秒:
show variables like 'long_query_%';
设置配置文件my.ini:
[mysqld] datadir=C:/Program Files/MariaDB 10.4/data port=3306 innodb_buffer_pool_size=1013M feedback=ON character-set-server=utf8 slow_query_log = 1 slow_query_log_file = C:\Program Files\MariaDB 10.4\data\mysql_slow.log long_query_time = 1 [client] port=3306 plugin-dir=C:/Program Files/MariaDB 10.4/lib/plugin
配置后重启服务
测试慢查询
select sleep(2);
查看mysql_slow.log日志
C:\Program Files\MariaDB 10.4\bin\mysqld.exe, Version: 10.4.18-MariaDB-log (mariadb.org binary distribution). started with: TCP Port: 3306, Named Pipe: (null) Time Id Command Argument # Time: 210415 11:38:34 # User@Host: root[root] @ localhost [127.0.0.1] # Thread_id: 9 Schema: test QC_hit: No # Query_time: 2.000180 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0 # Rows_affected: 0 Bytes_sent: 63 use test; SET timestamp=1618457914; select sleep(2);
log_output
log_output参数指定日志的存储方式。
log_output='FILE'表示将日志存入文件,默认值也是'FILE'。
log_output='TABLE'表示将日志存入数据库,这样日志信息就会被写入到mysql.slow_log表中。
同时也支持两种日志存储方式,配置的时候以逗号隔开即可,如:log_output='FILE,TABLE'。
日志记录到系统的专用日志表中,要比记录到文件耗费更多的系统资源。
因此对于需要启用慢查询日志,又需要能够获得更高的系统性能,那么建议优先记录到文件。
--查看当前输出方式,默认FILE show variables like '%log_output%'; --设置为写入表中 set global log_output='TABLE'; --查看是否设置成功 show variables like '%log_output%'; --测试慢查询 select sleep(5) ; --查看记录表 select * from mysql.slow_log;
log-queries-not-using-indexes
该系统变量指定未使用索引的查询也被记录到慢查询日志中(可选项)。
如果调优的话,建议开启这个选项。
另外,开启了这个参数,其实使用full index scan的SQL也会被记录到慢查询日志。
--是否开启 show variables like 'log_queries_not_using_indexes'; --设置为开启 set global log_queries_not_using_indexes=1;
log_slow_admin_statements
这个系统变量表示,是否将慢管理语句例如ANALYZE TABLE和ALTER TABLE等记入慢查询日志。
- Spring(403)
- Boot(208)
- Spring Boot(187)
- Java(82)
- Cloud(82)
- Spring Cloud(82)
- Security(60)
- Spring Security(54)
- Boot2(51)
- Spring Boot2(51)
- Redis(31)
- SQL(29)
- Mysql(25)
- IDE(24)
- Dalston(24)
- JDBC(22)
- IDEA(22)
- mongoDB(22)
- MVC(22)
- Web(21)
- CLI(20)
- Alibaba(19)
- SpringMVC(19)
- SpringBoot(17)
- Docker(17)
- Eclipse(16)
- Vue(16)
- Git(16)
- JPA(15)
- Apache(15)
- ORA(15)
- Oracle(14)
- jdk(14)
- Tomcat(14)
- Linux(14)
- HTTP(14)
- Mybatis(14)
- XML(13)
- JdbcTemplate(13)
- OAuth(13)
- Nacos(13)
- Pro(13)
- JSON(12)
- OAuth2(12)
- Data(12)
- stream(11)
- int(11)
- Myeclipse(11)
- not(10)
- Bug(10)
- maven(9)
- Map(9)
- Hystrix(9)
- ast(9)
- APP(8)
- Bit(8)
- API(8)
- session(8)
- Window(8)
- Swagger(8)
- JavaMail(7)
- Cache(7)
- File(7)
- IntelliJ(7)
- mail(7)
- windows(7)
- too(7)
- HTML(7)
- Github(7)
- Excel(6)
- Log4J(6)
- pushlet(6)
- apt(6)
- read(6)
- Freemarker(6)
- WebFlux(6)
- JSP(6)
- Bean(6)
- error(6)
- Server(6)
- nginx(6)
- ueditor(6)
- jar(6)
- ehcache(6)
- UDP(6)
- RabbitMQ(6)
- star(6)
- and(6)
- Struts(5)
- string(5)
- script(5)
- Syntaxhighlighter(5)
- Tool(5)
- Controller(5)
- swagger2(5)
- ldquo(5)
- input(5)
- Servlet(5)
- Config(5)
- discuz(5)