Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL中有一个大的还是几个小的GPS表更好?_Mysql_Database Design - Fatal编程技术网

MySQL中有一个大的还是几个小的GPS表更好?

MySQL中有一个大的还是几个小的GPS表更好?,mysql,database-design,Mysql,Database Design,一个大型MySQL 5.1 MyISAM表包含来自100辆车的500米GPS记录(以及各种其他元数据)更好还是100个表包含来自每辆车的500米记录更好?大约有40列,其中一半是基于文本的,另一半是基于数字的 我认为最好有多个表,因为汽车不共享GPS数据,因此它们之间不应该有连接(但会有到其他表的连接)如果所有数据都存储在一个数据库中,最好有一个大表,而不是一堆小表 当您这样做时,您的编程、索引和维护都会容易得多。添加或删除汽车不涉及数据定义,一方面。一个表。B树索引具有O(log(N))性能。

一个大型MySQL 5.1 MyISAM表包含来自100辆车的500米GPS记录(以及各种其他元数据)更好还是100个表包含来自每辆车的500米记录更好?大约有40列,其中一半是基于文本的,另一半是基于数字的


我认为最好有多个表,因为汽车不共享GPS数据,因此它们之间不应该有连接(但会有到其他表的连接)

如果所有数据都存储在一个数据库中,最好有一个大表,而不是一堆小表


当您这样做时,您的编程、索引和维护都会容易得多。添加或删除汽车不涉及数据定义,一方面。

一个表。B树索引具有O(log(N))性能。如果你有多个表,你将减少N,但你将乘以M,其中M是表计数。没有免费的午餐。

在元数据上分离是一种SQL反模式。。您可能想了解,我建议您使用innodb作为存储引擎。@RaymondNijland-为什么
innodb
?是因为
MyISAM
在插入/读取时锁定了整个表,而
innodb
只锁定当前行吗?如果您正确配置了MyISAM,那么innodb比MyISAM快得多,因为它确实是+1@JohnMalli,我错过了关于文本列的一个细节。您可能希望进行垂直分区(从两个表中的INT列中读取单独的文本列),但在按顺序或分组时确实希望这样做,以避免在@RaymondNijland此处读取基于MyISAM磁盘的临时表-这不是文本列,而是
varchar
列(少于50个字符)所以我不认为它会根据我能读到的内容创建临时表?