innodb方式查询慢

yzbsd 2017-02-23 09:58:12
现在表中有3万多条数据,表引擎是innodb,用count查询总数时大约花费2秒时间,改成myisam引擎,很快就能查出总数,用不了0.01秒。要在使用事务的情况下使用innodb引擎,应该怎么优化该表的查询效率呢?
...全文
296 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2017-02-25
  • 打赏
  • 举报
回复
你的查询语句是什么? 以文本方式贴出(不要贴图!) explain select ....show index from 以供分析
今天晴 2017-02-24
  • 打赏
  • 举报
回复
尽量别用count(*),尽量用上索引
rucypli 2017-02-23
  • 打赏
  • 举报
回复
如果不要求精确 可以从information_schema.tables里面取大概的行数 另外在一个小字段加索引也可以通过索引加快统计行数
lamking 2017-02-23
  • 打赏
  • 举报
回复
myisam精确的记录了行数,innodb没有,所以在myisam上不加条件的count很快,因为并不是全表扫描,而是直接读取的,innodb没有这个记录,只有估算值(不是精确值),就是1楼说的那个,如果对数量要求不严格,可以使用,如果需要精确数量,那只能从程序角度,去处理了,例如专门弄个字段或者缓存,记录记录数。
comfortable1024 2017-02-23
  • 打赏
  • 举报
回复
可以 explain 这条SQL,看看执行计划

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧