使用类似SQL的关键字在Tarantool DB中进行查询的正确方法是什么?例如:
SELECT * FROM space where smth LIKE '%some_value%';
如果您使用tarantool版本2. x,您的查询没有问题。
SELECT * FROM "your_space" WHERE "smth" LIKE '%some_value%';
使用存储过程进行基于前缀的最佳搜索。例如,此代码段也适用于西里尔文字:
box.schema.create_space('address')
box.space.address:create_index('prefix', { type = 'tree', parts = { { 1, 'str', collation = 'unicode_ci' } }, unique = true })
select_by_prefix = function(prefix)
local result = {}
for _, addr in box.space.address.index.prefix:pairs(prefix, { iterator = 'GT' }) do
if utf.casecmp(utf.sub(addr[1], 1, utf.len(prefix)), prefix) == 0 then
table.insert(result, addr)
else
break
end
end
return result
end
是的,你应该编写Lua脚本,它将在空间上迭代,并在元组的'smth'
字段上使用lua函数gsub
。目前没有办法搜索字符串的一部分。
如果表已经存在,如何检查TarantoolSQL?
我们知道,通过指定排序选项,字符串Tarantool索引可以不区分大小写:。例如。: 现在我们可以执行不区分大小写的查询: 但是如何使用SQL呢?这不起作用: 这也不是: 有一个肮脏的把戏,性能很差(完全扫描)。我们不想要它,是吗? 最后,我们还有一个解决办法: 但问题是,它是否使用索引?如果没有索引,它也可以工作。。。
我有以下数据结构格式: 我已经在里面有以下数据: 我已经阅读了参考资料和文档,在完成以下内容时有点不知所措: > 什么是“哪里”等价物?ie.选择查找具有的的条目 在中没有看到适用的示例https://www.tarantool.io/en/doc/2.2/reference/reference_lua/box_space/#lua-function.space\u object.select 用
我尝试使用官方的Tarantool客户端从Golang应用程序运行SQL查询。我知道如何做的唯一方法是使用下面的。但我没有收到任何错误。我可以删除不存在的表,插入具有重复键的行。我永远不会发现出了什么问题。 你能指出获取错误的方法或运行SQL查询的正确方法吗?
我一直在使用关系数据库,最近决定将性能关键服务从SQL服务器迁移到Tarantool,希望利用内存中的快速搜索和处理。在计划迁移时,我有几个问题。 我有一个包含大约一百万条记录的表,其中包含定价信息,这意味着我主要处理的是数字和UUID。首先,我需要运行一个包含多个条件的select来获取数据的子集,如 Q1:在Lua中运行这样一个查询的策略是什么?我是为谓词中的每个字段创建索引,还是可以使用一个
在tarantool中是否支持更新连接?我正在检查tarantool sql参考,但找不到任何样品。当我尝试使用类似于下面的查询时,我得到一个错误。 以下是模式定义: 这是我在运行update命令时遇到的错误: PS:我正在使用dbeaver tarantool jdbc驱动程序来运行查询,如果这有什么不同的话。