presto为什么比sparksql快?

等等,昨天调试Presto的时候,遇到了一个有趣的场景。
一个查询跑了几分钟,内存突然爆了。
最后,服务不得不重新启动。
如果我用相同的数据再次运行SparkSQL,内存是稳定的,但查询时间稍微慢一些。
你看,Presto和SparkSQL在内存管理方面还是有区别的。

SparkSql中char、varchar和string有什么区别?

2 02 2 年,某城市的数据库项目出现问题。
表结构有一个 char(2 0) 字段。
主表还有一个 varchar(1 0) 字段,用于检索。
要求是char字段必须支持多次检索,而varchar字段只能执行一次唯一检索。

当时有点混乱,因为通常 char 字段具有固定长度并且搜索效率高。
然而,这里有点不合常规,因为 char 字段必须能够多次检索,而 varchar 字段只能唯一检索。

后来我意识到这可能是由于业务需要。
Char字段可能存储特定的编码,并且需要经常检索这些编码。
varchar ィールドには、ユーザーが入力したクエeriキーワードが格纳されます。
これは、缲り返し取得されないように一意である必要があります。

解决方案是在char字段上创建复合索引,包括主索引key 以及您需要检索的任何其他字段。
这样,您可以在执行多次搜索时充分利用索引来加快查询速度。
varchar 字段保持唯一检索的要求。
这是通过控制应用程序级别的输入来实现的。

关连するコマンドとして、次のような SQL を作成しました。

sql -
在 char 字段上创建复合索引 CREATE INDEX idx_char_field ON table_name(char_field, other_field);
-
char firudoo取得 SELECT FROM table_name WHERE char_field = 'some_value';
-
获取 varchar 字段 SELECT FROM table_name WHERE varchar_field = 'unique_value';
このようにして、kueriの效率を维持しながらビジネsu niーズを満たします。
少し偏差があるかもしれませんが、この特定のシナリオでは、そのような设计が合理的であるように思えます。