今天在执行一个sql子查询时提示不支持limit什么什么的

This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

看到网上是这样解决的

select from table where id in (select id from table limit 10)
但是,只要你再来一层就行。。如:
select
from table where id in (select t.id from (select * from table limit 10)as t)

有没有老铁知道为什么会这样
之前使用sqlite在windows上跑的很好,一点毛病没有
转到linux后,六七个人同时访问网站,出现了严重的延迟问题,不知道为什么读写性能很差, 然而数据库并不大,索引也都有
于是今天就转到mysql,遇到了这个问题

另外还有一个问题,mysql字段默认值无法自定义为当前时间戳么,查了一下好像不支持,于是都转为datetime了

回复列表(3|隐藏机器人聊天)
  • @Ta / 2022-09-06 / /

    @echo醉老仙,你是php嘛?profile看看哪里速度慢?

    (网上随便找的图)

  • @Ta / 2022-09-06 / /

    @无名啊,用的thinkphp,最多的时候有七八个人访问,每个人最高频次2-3秒进行一次读写,每次update一条数据,之后会返回带条件的count,读写也不能说很频繁吧,但也不至于会导致返回数据延迟呀,毕竟才几M数据,在windows上的时候挺正常的,看日志好像没啥大毛病,已经转为mysql了,日志已经清理,并且考虑到网上说的InnoDB引擎count比MyISAM慢,于是采用MyISAM

  • @Ta / 2022-09-06 / /

    @echo醉老仙,几MB。。我还是觉得 SQLite 绰绰有余

    况且 SQLite 也有 WAL 模式(先顺序写入xxx.db.wal,有空了再写回xxx.db,写速度提高很多

    MyISAM,你不需要事务啥的嘛

添加新回复
回复需要登录