立贴记录个教训,mariadb刚上手给人感觉很快,但不够稳定,时不时给你卡一下。

tips:接下去会在github写博客,简书不再更新和修改文章,欢迎大家逛逛我的新博客澳门新葡亰8455下载app,点击查看
,我会尽量用更容易理解的方式写好每一篇博客,大家一起学习交流😄。

select count的速度比mysql的慢。

前言

这个月利用空余时间写的xmxz在修了n多bug之后,在填了不少坑之后终于把他部署到云服务器上线了。对我这个技术菜简直就是挖坑,填坑,挖坑,填坑。。。。。。现在趁还记得一些,记录一下,免得下次忘了

mariadb容易阻塞,一个查询阻塞了,整个网站都会卡住,跟当年单线程的access似的。

nodejs写爬虫,论坛系统

说到nodejs,肯定离不开异步,我在项目中用的是
promise+async/await这一套异步方案

async/await是写异步代码的新方式,以前的方法有回调函数和Promise。
async/await是基于Promise实现的,它不能用于普通的回调函数。
async/await与Promise一样,是非阻塞的。
async/await使得异步代码看起来像同步代码,这正是它的魔力所在。

了解回调函数是什么
了解异步与同步,阻塞与非阻塞
Async/Await替代Promise的6个理由
Async/Await详解

show code:
操作mysql

let query = function( sql, values ) {

  return new Promise(( resolve, reject ) => {
    pool.getConnection(function(err, connection) {
      if (err) {
        resolve( err )
      } else {
        connection.query(sql, values, ( err, rows) => {

          if ( err ) {
            reject( err )
          } else {
            resolve( rows )
          }
          connection.release()
        })
      }
    })
  })

}

let findDataByUser = function (  name ) {
  let _sql = `
    SELECT * from posts
      where name="${name}"
      `
  return query( _sql)
}

控制器:

Post:async(ctx,next)=>{
    if (ctx.request.querystring)
     {              

        await userModel.findDataByUser(decodeURIComponent(ctx.request.querystring.split('=')[1]))
            .then(result=>{ 
                     var string=JSON.stringify(result); 
                       res=JSON.parse(string).reverse();
            })
        await ctx.render('post',{
                session:ctx.session,
                posts:res   
            })
    }
    }
网站地图xml地图