mysql - 从数据库中检索(选择)数据的有效方法是什么?

标签 mysql sql database indexing

在我的数据库中包含大约 200 万行。每行包含句子的集合(非英语)。

    ![Image of database][1]

enter image description here

例如,如果用户给出“abcd”,则与第 1,3 行都匹配。因此两者都应选择。 由于数据检索花费了大量时间。我正在使用以下代码来检索数据。如果任何给定的单词与数据库匹配,则应选择这些行。

        sb.append("SELECT Sentence FROM corpus Where ");
         for(int k=0;k<wordList.size();k++){
             sb.append( " Sentence like '%" + wordList.get(k) + "%' OR ");
         } 
         sb.append(" 1=0");
         rs2 = dbc.sqlExecute(sb.toString());

该选择词可以在行中的任何位置。那可能是前面或中间或结尾。我的问题是当用户给出一些单词短语时,选择匹配行需要花费大量时间。有什么合适的方法可以加快我的数据库检索速度吗?我认为索引可能不起作用,因为我不是只搜索行的起点。匹配的词可能包含行中的任何位置。这样做的有效方法是什么?检索花费了大量时间。对我来说是个大问题。有谁知道正确的方法吗?

最佳答案

你不需要for循环,只需要这样做:

sb.append("SELECT Sentence FROM corpus Where Sentence like '%");

sb.append(wordList);

sb.append("%'");

关于mysql - 从数据库中检索(选择)数据的有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27212249/

相关文章:

php - 在函数调用中返回许多列

php - 将jquery ui tabs的 'title'值添加到MYSQL中

python - sqlalchemy.exc.MultipleResultsFound : Multiple rows were found when exactly one was required

Mysql插入行忽略当前事务

php - 使用 Laravel 显示类别和最低价格

MySQL有条件地创建表

sql - 来自复杂联接、求和和组查询的 Rails ActiveRecord 友好代码

database - 以编程方式将文档添加到 Hummingbird/OpenText eDocs 数据库

c# - 在没有 CodeFirst 的情况下访问 C#/.NET 中的数据库

java - 如何使 SQL 删除方法正确验证数据