MySql中的MyISAM和Inno数据库类型有什么区别?
我们有一组表,其中包含元级别数据,如组织,组织用户,组织部门等.所有这些表都将被阅读,只需很少的写操作.此外,表格大小非常小(最大记录数量约为30K - 40K)
另一组表存储OLTP数据,如账单交易,用户操作等,这些数据将同时读写.这些表格非常庞大(每张表约3000万条记录)
对于第一组表,我们计划使用MyISAM,第二组使用InnoDb引擎.我们的许多功能还需要来自这两组的桌子上的JOINS.
使用InnoDB表加入MyISAM表时是否存在任何性能问题?此外,还有任何其他可能的问题(数据库备份,调整等),我们可能会遇到这种设计?
任何反馈将不胜感激.
我正在为我的学习编写一个网络应用程序,其中包括全文搜索和外键.
我在某处读过,MyISAM引擎适用于全文搜索,而InnoDB适用于外键.
在这种情况下,我应该使用什么引擎才能获得最佳性能?
我正在尝试使用MySQL的FULLTEXT索引为我的PHP Web应用程序添加搜索支持.
我创建了一个测试表(使用MyISAM类型,带有单个文本字段a)并输入了一些示例数据.现在如果我是对的,下面的查询应该返回这两行:
SELECT * FROM test WHERE MATCH(a) AGAINST('databases')
Run Code Online (Sandbox Code Playgroud)
但它没有返回.我做了一些研究,据我所知,我正在做的一切 - 表是一个MyISAM表,设置了FULLTEXT索引.我试过从提示符和phpMyAdmin运行查询,没有运气.我错过了一些关键的东西吗
更新:好的,虽然Cody的解决方案在我的测试用例中起作用,但它似乎不适用于我的实际表格:
CREATE TABLE IF NOT EXISTS `uploads` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text NOT NULL,
`size` int(11) NOT NULL,
`type` text NOT NULL,
`alias` text NOT NULL,
`md5sum` text NOT NULL,
`uploaded` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
Run Code Online (Sandbox Code Playgroud)
我正在使用的数据:
INSERT INTO `uploads` (`id`, `name`, `size`, `type`, `alias`, `md5sum`, `uploaded`) VALUES
(1, '04 Sickman.mp3', 5261182, 'audio/mp3', '1', …Run Code Online (Sandbox Code Playgroud) 我正在测试innoDB表中的事务支持,并且只是因为我试图在MyIsam表上运行相同的事务,但令人惊讶的是它有效.我假设myIsam表上的查询是一个接一个地执行而不是在一个原子操作中,我没有从START TRANSACTION和COMMIT和ROLLBACK操作中得到任何错误.我感兴趣的是,MyIsam引擎只是忽略了这个操作还是执行了一些操作?
我有一user张有田地的桌子lastusedecnumber.
我需要访问和增加lastusedecnumber.
在访问时间期间,我需要锁定该特定用户行(而不是整个表).
我该怎么做呢?
表类型是MyISAM.
我有一个感兴趣的问题:
我有2代表的mysql用InnoDb.
table tbl_a有一个主键,命名为a_id;
table上tbl_b有一个主b_id键和一个外键,tbl_a.a_id带有" ON DELETE NO ACTION".
+-------------+---------------+---------------+
| Table Name | Primary Key | Foreign Key |
+-------------+---------------+---------------+
| tbl_a | a_id | |
| tbl_b | b_id | a_id |
+-------------+---------------+---------------+
Run Code Online (Sandbox Code Playgroud)
为什么我仍然会使用InnoDb和外键,如果我最终没有真正使用外键的魔力呢?
还有一点是使用
innodb和外键
而不是
myisam而没有外键.
如果我只是NO ACTION删除或更新?
我希望你有我的兴趣:)
有人告诉我InnoDB比MyISAM好多了.所以当我创建一个表时,我是否应该总是尝试使用InnoDB Engine而不是MyISAM?或者两者都有它的巨大好处?
我正在尝试自己的第一个大型数据库项目.我在服务器1上有一个myisam mysql数据库,其中一个php应用程序消耗了大量的各种数据.我在服务器2上有mysql myisam,php应用程序选择并显示数据.
我想在服务器2上复制这些数据.
问题:
我有一个MySQL 1.5 GB MyISAM表(1.0 GB数据,0.5 GB索引)正在制作中,我即将转换为InnoDB.
由于该表用于生产,我希望尽可能缩短停机时间.
我的问题:
应该调整哪些MySQL配置选项以加快速度ALTER TABLE table_name ENGINE=InnoDB;?
为了加快生产数据库表从MyISAM到InnoDB的转换,可以使用哪些其他技巧?
myisam ×10
mysql ×10
innodb ×7
database ×2
foreign-keys ×1
locking ×1
optimization ×1
php ×1
replication ×1