Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1125658
  • 博文数量: 170
  • 博客积分: 1603
  • 博客等级: 上尉
  • 技术积分: 1897
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 15:54
文章分类

全部博文(170)

文章存档

2016年(27)

2015年(21)

2014年(27)

2013年(21)

2012年(7)

2011年(67)

我的朋友

分类: Mysql/postgreSQL

2015-11-05 11:34:40

分析数据的时候innodb插入太费时间需要在导入前将innodb转化为myisam
如果导出的innodb表带有create与drop语句的话就很蛋碎

解决方法1:对sql文件做sed替换掉innodb字段,但是当sql文件巨大的时候,这个方法明显很浪费时间
而且sed替换的时候是复制一份文件的,大文件的情况下效率很低

解决方法2:这个方法是以前遇到的一个坑的时候发现的.
有一次我导一个必须用innodb的表,临时用了一个不知道谁搭建的数据库
代码测试sql回滚的时候发现总是失败,最后show create table的时候发现表是myisam的, 我详细检查了创建语句和my.cnf都没发现问题
想了一下应该是这个mysql是编译为只支持myisam的版本
所以解决方法2就是  使用一个只支持myisam的版本
专门编译个mysql也要点时间,查了下mysql配置文件里支持不启用inondb
参考

multi方式启动的mysql配置里增加

点击(此处)折叠或打开

  1. [mysqld6]
  2. server-id=1006
  3. user=mysql
  4. socket=/var/lib/mysql/mysql_isamonly.sock
  5. pid-file=/var/run/mysqld/mysqld_isamonly.pid
  6. datadir=/data/mysql/mysqld6
  7. character-set-server=utf8
  8. skip-name-resolve
  9. symbolic-links=0
  10. port=3306
  11. max_connect_errors=64
  12. back_log=1024
  13. max_connections=512
  14. thread_cache_size=16
  15. table_open_cache=512
  16. max_allowed_packet=33554432
  17. max_heap_table_size=268435456
  18. tmp_table_size=268435456
  19. query_cache_size=134217728
  20. # InnoDB set
  21. skip-innodb
  22. default-storage-engine = MyISAM
  23. innodb=OFF
  24. # MyISAM set
  25. concurrent_insert=2
  26. key_buffer_size=134217728
  27. read_buffer_size=4194304
  28. read_rnd_buffer_size=6291456

测试生效,指定建立innodb的表创建后实际为myisam

                  
阅读(1535) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~