# Full text searching performance (compare to mysql)

**URL:** <https://discuss.elastic.co/t/full-text-searching-performance-compare-to-mysql/46570>\
**Category:** Elasticsearch\
**Created:** [April 6, 2016, 4:44pm UTC](https://discuss.elastic.co/t/full-text-searching-performance-compare-to-mysql/46570 "2016-04-06T16:44:15Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ashwani\_Kumar](https://avatars.discourse-cdn.com/v4/letter/a/c77e96/32.png) [@Ashwani\_Kumar](https://discuss.elastic.co/u/Ashwani_Kumar)\
**Post date:** [April 6, 2016, 4:44pm UTC](https://discuss.elastic.co/t/full-text-searching-performance-compare-to-mysql/46570/1 "2016-04-06T16:44:16Z")

</div>

I am trying to use elasticsearching over mysql as my searching is slow, so i am just making demo and i am finding mysql performing better.

But i doubt if i am do something wrong

Till now what i have done:-

**localhost:9200/elastic\_analysis\_patternl/\_settings**

```
{
   "elastic_analysis_pattern": {
       "settings": {
           "index": {
               "creation_date": "1459959233955",
               "analysis": {
                   "filter": {
                         "edge_ngram": {
                            "min_gram": "2",
                             "side": "front",
                             "type": "edgeNGram",
                             "max_gram": "20"
                          }
                    },
                   "analyzer": {
                        "pattern_index": {
                                 "filter": [ "lowercase",  
                                                 "stop",  
                                                 "edge_ngram"   
                                              ],
                                             "tokenizer": "pattern_token"
                                   },
                                  "pattern_search": {
                                             "filter": [ "lowercase",
                                                               "stop" ],
                                           "tokenizer": "whitespace_token"
                                  }
                         },
                         "tokenizer": {
                                 "whitespace_token": {
                                        "type": "whitespace"
                                   },
                                 "pattern_token": {
                                      "pattern": "[^\\p{L}\\d]+",
                                      "type": "pattern"
                                  }
                          }
          },
         "number_of_shards": "1",
         "number_of_replicas": "0",
         "uuid": "109pq9KfTVq32rIydKMPtg",
         " version": {
               "created": "2020199"
         }
     }
   }
 }
}

```

**localhost:9200/elastic\_analysis\_pattern/\_mapping/**

```
{
  "elastic_analysis_pattern": {
      "mappings": {
         "search_analysis": {
               "properties": {
                      "search": {
                              "type": "string",
                             "analyzer": "pattern_index",
                             "search_analyzer": "pattern_search"
                      }
                }
           }
     }
  }
}

```

`query i am searching is say`:-

```
{
  "query" : {
          "bool" : {
                    "must" : {
                           "match" : {
                                   "search" : "param1 param2"
                             }

                    }
                }
      },
    "size" => 10
}

```

and mysql query is:

_SELECT SQL\_NO\_CACHE \* FROM internet\_ads WHERE (MATCH (search) AGAINST (' +sho' IN BOOLEAN MODE)) LIMIT 0,10_\*

i am testing with database having around 60,000 row

`exectution time is*`

**elastic time = 0.16344904899597**  
**mysql time = 0.070924997329712**

Can you please let me know if i am wrong here. Its already one week since i started looking into elastic search and started feeling like i wasted my time here.

---

<div class="post-metadata">

**Author:** ![Ashwani\_Kumar](https://avatars.discourse-cdn.com/v4/letter/a/c77e96/32.png) [@Ashwani\_Kumar](https://discuss.elastic.co/u/Ashwani_Kumar)\
**Post date:** [April 7, 2016, 10:25am UTC](https://discuss.elastic.co/t/full-text-searching-performance-compare-to-mysql/46570/2 "2016-04-07T10:25:35Z")

</div>

Does number of rows matter in performance compare to mysql?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [April 7, 2016, 10:39am UTC](https://discuss.elastic.co/t/full-text-searching-performance-compare-to-mysql/46570/3 "2016-04-07T10:39:34Z")

</div>

Not really. So if you index 1 million of docs and you compare with elasticsearch, you should see a difference.

How many docs you have so far?

---

<div class="post-metadata">

**Author:** ![Ashwani\_Kumar](https://avatars.discourse-cdn.com/v4/letter/a/c77e96/32.png) [@Ashwani\_Kumar](https://discuss.elastic.co/u/Ashwani_Kumar)\
**Post date:** [April 7, 2016, 10:41am UTC](https://discuss.elastic.co/t/full-text-searching-performance-compare-to-mysql/46570/4 "2016-04-07T10:41:34Z")

</div>

@dadoonet  
right now for demo i am trying with ~50000 doc, but in real i have 500000 docs

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [April 7, 2016, 10:44am UTC](https://discuss.elastic.co/t/full-text-searching-performance-compare-to-mysql/46570/5 "2016-04-07T10:44:18Z")

</div>

So try with 500000 docs. It does not take too long to inject that in Elasticsearch. You will get a better knowledge on the response time.

---

<div class="post-metadata">

**Author:** ![Ashwani\_Kumar](https://avatars.discourse-cdn.com/v4/letter/a/c77e96/32.png) [@Ashwani\_Kumar](https://discuss.elastic.co/u/Ashwani_Kumar)\
**Post date:** [April 7, 2016, 10:44am UTC](https://discuss.elastic.co/t/full-text-searching-performance-compare-to-mysql/46570/6 "2016-04-07T10:44:55Z")

</div>

ok will check with that too

---

<div class="post-metadata">

**Author:** ![maanas](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/maanas/32/5324_2.png) [@maanas](https://discuss.elastic.co/u/maanas)\
**Post date:** [April 8, 2016, 2:49am UTC](https://discuss.elastic.co/t/full-text-searching-performance-compare-to-mysql/46570/7 "2016-04-08T02:49:27Z")

</div>

Are you running elasticsearch with basic install?  
What configuration mysql is running?  
For large data you may be better with the more number of shards.

---

<div class="post-metadata">

**Author:** ![S\_Charlesworth](https://avatars.discourse-cdn.com/v4/letter/s/858c86/32.png) [@S\_Charlesworth](https://discuss.elastic.co/u/S_Charlesworth)\
**Post date:** [April 11, 2016, 11:28pm UTC](https://discuss.elastic.co/t/full-text-searching-performance-compare-to-mysql/46570/8 "2016-04-11T23:28:11Z")

</div>

Yeah, 50,000 docs is nothing, at a number that low any difference you see is more or less noise anyway.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 5, 2017, 11:00pm UTC](https://discuss.elastic.co/t/full-text-searching-performance-compare-to-mysql/46570/9 "2017-07-05T23:00:31Z")

</div>


