我们制作分布式软件,在a)数据库或b)Amazon S3中存储一些数据(附件).使用该数据库是因为它不需要其他配置.Amazon S3是更好的选择.
我们现在想要的是一个不想使用Amazon S3的客户的解决方案.我们显然可以只使用文件系统,但如果有多个Web服务器并且需要复制文件,这可能会有问题; 它还要求我们编写额外的代码来处理可能发生的各种问题.
如果有一台服务器软件基本上复制了Amazon S3的API,我们会优先考虑.这样我们的客户就可以在一个盒子上安装服务器; 我们不需要更改任何代码.那么......那里有没有这样的软件?
我正在寻找一个文本语料库来运行一些试验全文风格的数据搜索.我可以下载的东西,或者生成它的系统.更随机的东西会更好,例如1,000,000维基百科文章,格式易于插入2列数据库(id,text).
任何想法或建议?
我们有一个带有20多个列的表的应用程序,这些列都是可搜索的.为所有这些列构建索引会使写入查询变得非常缓慢; 任何真正有用的索引通常必须跨越多列,增加所需的索引数量.
但是,对于这些搜索中的95%,只需搜索这些行中的一小部分,而且数量相当少 - 比如50,000行.
因此,我们考虑使用mySQL分区表 - 有一个列基本上isActive就是我们将两个分区划分的列.大多数搜索查询都将运行isActive=1.然后,大多数查询将针对小型50,000行分区运行,并且在没有其他索引的情况下快速运行.
唯一的问题是isActive=1没有固定的行; 即它不是基于行的日期或任何固定的那样; 我们需要isActive根据该行中数据的使用情况进行更新.据我所知,这不是问题; 在UPDATE查询期间,数据只会从一个分区移动到另一个分区.
我们有一个PK对id的,虽然该行; 我不确定这是不是一个问题; 手册似乎暗示分区必须基于任何主键.这对我们来说将是一个巨大的问题,因为主键ID没有依据是否行isActive.
像Xobni这样的应用程序会在用户只有电子邮件地址时显示来自用户的linkedin头像.我无法通过搜索电子邮件地址(https://developer.linkedin.com/documents/profile-api)找到使用linkedin API获取头像的方法.有任何想法吗?
我有一个批处理文件,我想打开一个文件并对该文件进行非常简单的搜索和替换,然后保存(覆盖)它进行搜索和替换的文件。
我知道如何读取文件的第一行:
set /p file= < file.txt
Run Code Online (Sandbox Code Playgroud)
但在读取整个文件并对其进行搜索/替换的批处理方法上苦苦挣扎。
两张桌子.
电子邮件id(int10)| 所有权(int10)
消息emailid(int10)已索引| 消息(中等文本)
子查询(在mysql中很糟糕).
SELECT COUNT(*)FROM messages WHERE message LIKE'%word%'AND emailid IN(SELECT id FROM emails WHERE ownership = 32)
这里的用法是我在电子邮件上运行搜索(在上面的示例中显然简化了),它会生成一个包含3,000个电子邮件ID的列表.然后,我想对邮件进行搜索,因为我需要进行文本匹配 - 仅针对该邮件的3000封电子邮件.
对消息的查询是昂贵的(消息没有索引),但这很好,因为它只会检查几行.
思路:
i)加入.到目前为止,我对此的尝试都没有奏效,导致对消息表进行全表扫描(即未使用的emailid索引)ii)临时表.我认为这可行.iii)缓存客户端中的id并运行2个查询.这确实有效.不优雅.iv)子查询.mySQL子查询每次运行第二个查询,所以这不起作用.也许修复在mysql 6中.
好的,这是我到目前为止所拥有的.这些是实际的字段名称(我简化了一些问题).
查询:
SELECT COUNT(*) FROM ticket LEFT JOIN ticket_subject
ON (ticket_subject.ticketid = ticket.id)
WHERE category IN (1)
AND ticket_subject.subject LIKE "%about%"
Run Code Online (Sandbox Code Playgroud)
结果:
1 SIMPLE ticket ref PRIMARY,category category 4 const 28874
1 SIMPLE ticket_subject eq_ref PRIMARY PRIMARY 4 deskpro.ticket.id 1 Using where
Run Code Online (Sandbox Code Playgroud)
它需要0.41秒并返回113的计数(*).
运行:
SELECT COUNT (*) FROM ticket WHERE category IN …Run Code Online (Sandbox Code Playgroud)