mysql中的临时表用在什么地方比较好的分析_MySQL
程序员文章站
2024-01-21 10:54:34
...
bitsCN.com
最近在写的项目中,返回周边列表的存储过程折磨了我好久,由于排序的几个字段都是从其他表来得到的。终于通过建立一个额外的记录表,平时签到的时候,将相应的记录做记录,所以返回周边列表的时候这些字段可以直接从表中搜索到,而且用了索引所以很快。 但是还有一个字段是实时的,所以要在执行存储过程的时候来求得。开始准备用一个临时表,从一个表中一次性通过count ..group by来得到所有的字段,并且插入临时表中,这个操作的确很快,下次取出这些值并以此排序的时候可以直接根据一个条件从临时表中得到。 --
但是的确还是很慢,用的是heap表。因为临时表不能建立索引,所以根据条件取值还是比较慢的,如此建立索引表还不如建立一个真实的表。可以建立临时表,可以用来存储全部要用来操作的数据,而不用根据条件去选取记录来操作。 而建立真实的表一定要注意并发的问题,建议如果时间不长的话,采取锁表操作来保证操作的一致性。 摘自 kofandlizi的专栏 bitsCN.com
最近在写的项目中,返回周边列表的存储过程折磨了我好久,由于排序的几个字段都是从其他表来得到的。终于通过建立一个额外的记录表,平时签到的时候,将相应的记录做记录,所以返回周边列表的时候这些字段可以直接从表中搜索到,而且用了索引所以很快。 但是还有一个字段是实时的,所以要在执行存储过程的时候来求得。开始准备用一个临时表,从一个表中一次性通过count ..group by来得到所有的字段,并且插入临时表中,这个操作的确很快,下次取出这些值并以此排序的时候可以直接根据一个条件从临时表中得到。 --
但是的确还是很慢,用的是heap表。因为临时表不能建立索引,所以根据条件取值还是比较慢的,如此建立索引表还不如建立一个真实的表。可以建立临时表,可以用来存储全部要用来操作的数据,而不用根据条件去选取记录来操作。 而建立真实的表一定要注意并发的问题,建议如果时间不长的话,采取锁表操作来保证操作的一致性。 摘自 kofandlizi的专栏 bitsCN.com