[MySQL优化案例]系列 -- 在5.1的分区功能中混用InnoDB和MyISAM
2017-04-13 00:00
633 查看
MySQL 5.1中增加了分区(partition)功能,有了这个功能,以前很头疼的分表方案,现在就变得不再那么麻烦了。不过,如果采用了MyISAM引擎,而且在数据量较大的情境下,并发读写仍然是个问题,尤其是对索引的更新。为此,可以在分区表中采用MyISAM和InnoDB引擎混用的方法,大致如下:
这样的话,就可以利用InnoDB的行锁以及buffer pool实现了对索引以及行记录的并发读写,大大提高效率。不幸的是,目前5.1还不支持这样的混合引擎特性,所以,上面的想法暂时只是美好的愿望了,哈哈。
上面的创意来自:
Venu Anuganti,原文出自:
http://venublog.com/2009/03/16/mysql-51-mix-of-handlers-in-partitions/
本文出自 “MySQL中文网”博客
http://www.imysql.cn/
本文出自 “老叶茶馆” 博客,转载请与作者联系!
mysql> mysql> CREATE TABLE test_part( -> date DATE NOT NULL DEFAULT '0000-00-00', -> comment VARCHAR(20) DEFAULT NULL -> )ENGINE=MyISAM -> PARTITION BY RANGE (to_days(date)) -> ( -> PARTITION nov08 VALUES LESS THAN(TO_DAYS('2008-12-01')), -> PARTITION dec08 VALUES LESS THAN(TO_DAYS('2009-01-01')), -> PARTITION jan09 VALUES LESS THAN(TO_DAYS('2009-02-01')), -> PARTITION feb09 VALUES LESS THAN(TO_DAYS('2009-03-01')), -> PARTITION mar09 VALUES LESS THAN(TO_DAYS('2009-04-01')) ENGINE=InnoDB, -> PARTITION unpart VALUES LESS THAN MAXVALUE -> );
这样的话,就可以利用InnoDB的行锁以及buffer pool实现了对索引以及行记录的并发读写,大大提高效率。不幸的是,目前5.1还不支持这样的混合引擎特性,所以,上面的想法暂时只是美好的愿望了,哈哈。
上面的创意来自:
Venu Anuganti,原文出自:
http://venublog.com/2009/03/16/mysql-51-mix-of-handlers-in-partitions/
本文出自 “MySQL中文网”博客
http://www.imysql.cn/
本文出自 “老叶茶馆” 博客,转载请与作者联系!
相关文章推荐
- [MySQL优化案例]系列 -- 在5.1的分区功能中混用InnoDB和MyISAM
- [MySQL优化案例]系列 — 优化InnoDB表BLOB列的存储效率
- MySQL优化系列(五)--数据库存储引擎(主要分析对比InnoDB和MyISAM以及讲述Mrg_Myisam分表)
- [MySQL优化案例]系列 -- InnoDB主键设计
- [MySQL优化案例]系列 -- 用TIMESTAMP类型取代INT和DATETIME
- 简单测试MySQL 5.1 表分区功能
- MySQL MyISAM与Innodb优化方案比较
- Mysql5.5数据库的MyISAM和InnoDB引擎配置优化
- Mysql 的一些优化 (MyISAM和InnoDB)
- [MySQL优化案例]系列 -- 频繁创建临时表
- MySQL MyISAM/InnoDB高并发优化经验
- [MySQL优化案例]系列 -- 取出超大结果集的技巧
- [MySQL优化案例]系列 -- DISABLE/ENABLE KEYS的作用
- mysql 5.1新功能 -- 按日期分区
- MySQL MyISAM/InnoDB高并发优化经验
- [MySQL优化案例]系列 -- 带函数的查询条件
- MySQL的MyISAM和InnoDB对比及优化
- MySQL中MyISAM引擎 vs InnoDB引擎(功能,性能)
- Mysql MyISAM InnoDB 优化
- MySQL MyISAM/InnoDB高并发优化经验