bin log/redo log/undo log
MySQL日志主要包括查询日志、慢查询日志、事务日志、错误日志、二进制日志等。其中比较重要的是 bin log
(二进制日志)和 redo log
(重做日志)和 undo log
(回滚日志)。
慢SQL查询,查询速度比较慢。
如何优化慢SQL查询?加索引。
确保表中的列上有适当的索引,以减少查询时的数据扫描量。可以使用EXPLAIN语句来分析查询语句的执行计划,看是否可以使用索引。
索引存储在磁盘里,查询数据的时候会优先将索引加载到内存中。
数据的增加、修改、删除,需要涉及到索引的维护,但数据较大的情况下,索引的维护会带来较大的性能开销。
当你在创建表时为某个字段设置主键时,MySQL会自动为主键字段创建主键索引。但是,对于普通索引,你需要明确地创建他们。
当你更新主键的值时,MySQL会重新创建一个新的记录,然后将旧的主键和新的主键值都存储在索引中。这是因为主键是唯一的,不能有重复值。
在进行大量的修改和删除操作时,主键索引可能会占用更多的存储空间,因为他们需要存储旧的主键值和新的主键值。
对于InnoDB存储引擎,主键索引是聚簇引擎,而普通索引是非聚簇引擎。这意味着主键索引会提高查询效率,因为他们直接存储了数据行的物理位置。而非聚簇索引需要额外查找数据行的物理位置。