Hi, Hope you are doing well.

This time I have a problem with the server, Currently I am using $15 server which has 2 cores and 2gb RAM, but the performance is poor now I don’t know what is the reason here.

This is the API:

var express = require('express');
var sqlite3 = require('sqlite3').verbose();
var path = require('path');
var router = express.Router();

/* GET users listing. */
router.get('/', function(req, res, next) {

    if(Object.keys(req.query).length === 0){
        res.send("No input given");
    } else {

        let query   = req.query.q;

        let SQLquery = 'SELECT * FROM recipe ';

        if(query){
            SQLquery += 'WHERE RecipeName LIKE "%' + query + '%"';
        }

        //console.log(SQLquery);

        let result = [];

        var db = new sqlite3.Database(path.resolve(__dirname, '../recipe.sqlite'));

        db.serialize(function() {
            db.each(SQLquery, (err, row) => {
                if (err) {
                    console.error(err.message);
                } else {
                    result.push(row); 
                }
            }, function(){
                //console.log(result);
                res.send(result);
            });
        });

        db.close();
    }
});

module.exports = router;

So basically I have stored data in Sqlite3 which would be 3 Million rows, 280 people or fewer than that, fetching data at a time, but the server is not responding - 100% CPU and RAM.

Help me with this. The structure of script is not good? or $15 server is not enough or what is the problem please explain this.

Thank You!
Regards

  • Chirag Artani
1 comment

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
Submit an Answer
1 answer

Hi there,

It sounds like that you might need more CPU power as the application seems to be quite busy.

Another option I could suggest is trying to use MySQL or PostgreSQL instead of SQLite. I would personally use SQLite for local dev environments but whenever performance optimization is hard when using SQLite.

Regards,
Bobby