mysql innodb 调优_MySQL innodb优化总结

MySql插入有3中模式

Simple inserts

就是通过分析insert语句可以确定插入数量的insert语句, INSERT, INSERT … VALUES(),VALUES()

Bulk inserts

就是通过分析insert语句不能确定插入数量的insert语句, INSERT … SELECT, REPLACE … SELECT, LOAD DATA

Mixed-mode inserts

下面两种,不确定是否需要分配auto_increment id

INSERT INTO t1 (c1,c2) VALUES (1,’a'), (NULL,’b'), (5,’c'), (NULL,’d');

INSERT … ON DUPLICATE KEY UPDATE

一、innodb_autoinc_lock_mode = 0 (“traditional” lock mode)

这种方式就和mysql5.1.22以前一样,为了向后兼容而保留了这种模式,如同前面介绍的一样,这种方式的特点就是“表级锁定”,并发性较差

二、innodb_autoinc_lock_mode = 1 (“consecutive” lock mode)

这种方式是新版本中的默认方式,推荐使用,并发性相对较高,特点是“consecutive”,即保证同一条insert语句中新插入的auto_increment id都是连续的。

这种模式下,对应MySQL的三种插入模式,会有三种不同的插入方法(见上面mysql的3种插入方式):

“Simple inserts”:直接通过分析语句,获得要插入的数量,然后一次性分配足够的auto_increment

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL InnoDB是一种非常流行的关系型数据库存储引擎,但是在高并发、大数据量的情况下,需要对InnoDB进行适当的调优才能发挥出其最大的性能。 以下是一些常见的InnoDB调优方法: 1. 调整缓冲池大小:InnoDB的缓冲池是用来存储数据和索引的,缓冲池越大,可以存储的数据和索引也就越多。可以通过设置innodb_buffer_pool_size参数来调整缓冲池的大小。 2. 开启慢查询日志:慢查询日志可以记录执行时间超过指定阈值的SQL语句,以便进行分析和优化。可以通过设置slow_query_log和long_query_time参数来开启慢查询日志。 3. 调整线程数:InnoDB使用多个线程来处理不同的任务,如读取数据、写入数据、刷新缓存等。可以通过设置innodb_thread_concurrency参数来调整InnoDB使用的线程数。 4. 分区表:如果表中的数据量很大,可以考虑将表进行分区,这样可以提高查询速度并减少锁的竞争。 5. 调整日志文件大小:InnoDB使用redo日志和undo日志来保证数据的一致性和可恢复性。可以通过设置innodb_log_file_size参数来调整日志文件的大小,以提高崩溃恢复速度。 6. 调整缓存大小:InnoDB使用缓存来存储数据和索引,缓存大小可以通过设置innodb_buffer_pool_size参数来调整。 7. 使用SSD硬盘:SSD硬盘相比传统机械硬盘有更高的读写速度和更低的访问延迟,可以显著提高InnoDB的性能。 8. 使用索引:在查询数据时,使用索引可以大大提高查询速度。可以通过使用explain命令来分析查询语句是否使用了索引。 以上是一些常见的InnoDB调优方法,需要根据具体情况进行选择和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值