免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: send_linux
打印 上一主题 下一主题

如何使用InnoDB存储引擎?《MySQL 技术内幕:InnoDB存储引擎》有奖试读名单公布! [复制链接]

论坛徽章:
0
91 [报告]
发表于 2010-12-20 17:18 |只看该作者
本帖最后由 qlks 于 2010-12-23 10:37 编辑
从逻辑角度上看,在oltp中count出来的结果都是不准确的,不管是InnoDB还是MyISAM

所以还有必要将这些操作 ...
qlks 发表于 2010-12-20 14:26



   首先,我没有一味地说innodb的count(*)慢
   现在讨论的情景是带where条件的count统计innodb和myisam的差异,myisam也不是任何操作都锁表吧
  
在 MySQL 3.23.7(在Windows上是3.23.25)以后,在 MyISAM 表中只要没有冲突的 Insert 操作,就可以无需使用锁表自由地并行执行 Insert 和 Select 语句。也就是说,可以在其它客户端正在读取 MyISAM 表记录的同时时插入新记录。如果数据文件的中间没有空余的磁盘块的话,就不会发生冲突了,因为这种情况下所有的新记录都会写在数据文件的末尾(当在表的中间做删除或者更新操作时,就可能导致空洞)。

   而且对于这种count我并不需要它十分准确,比如innodb执行count操作并有where条件,那么innodb的锁机制会锁符合where条件的行,那么在count的过程中,对于新加的符合where条件的行,会计算进来还是不计算进来,
  如果计算进来,确实会慢,如果不计算进来,应该还好啊.
  所以我不赞成那种类似"innodb里尽量不要用count(*)"这种结论.

论坛徽章:
8
综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-02 06:20:00IT运维版块每日发帖之星
日期:2015-09-14 06:20:00金牛座
日期:2014-10-10 11:23:34CU十二周年纪念徽章
日期:2013-10-24 15:41:34酉鸡
日期:2013-10-19 10:17:1315-16赛季CBA联赛之北京
日期:2017-03-06 15:12:44
92 [报告]
发表于 2010-12-21 19:49 |只看该作者
那么在count的过程中,对于新加的符合where条件的行,会计算进来还是不计算进来-------不计算进来

论坛徽章:
0
93 [报告]
发表于 2010-12-22 11:08 |只看该作者
那么在count的过程中,对于新加的符合where条件的行,会计算进来还是不计算进来-------不计算进来
ruochen 发表于 2010-12-21 19:49



    明白

论坛徽章:
0
94 [报告]
发表于 2010-12-22 19:40 |只看该作者
支持

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-03-12 06:20:00
95 [报告]
发表于 2010-12-23 10:37 |只看该作者
首先,我没有一味地说innodb的count(*)慢
   现在讨论的情景是带where条件的count统计innodb和myi ...
starzhestarzhe 发表于 2010-12-20 17:18


InnoDB是MVCC的机制,当然不会对新加的记录统计进来,他只是统计发出SQL命令时的数据记录

另外,我搞不懂,为什么InnoDB加了where之后,count就会慢了?你有实际的例子吗?

比如,表多少大,count出来的结果多少,走的是什么类型的索引?explain的结果是什么?

论坛徽章:
0
96 [报告]
发表于 2010-12-23 11:07 |只看该作者
InnoDB是MVCC的机制,当然不会对新加的记录统计进来,他只是统计发出SQL命令时的数据记录

另外,我搞 ...
qlks 发表于 2010-12-23 10:37



   
InnoDB加了where之后,count就会慢了

天地良心,我什么时候说过这话了,
我是说加了where条件,对innodb和myisam引擎来说,统计的过程都是一样的

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
97 [报告]
发表于 2010-12-23 17:10 |只看该作者
回复 96# starzhestarzhe


    上次提问给书那个活动因为参加的人太少取消了。呵呵。还想得本书呢。

论坛徽章:
0
98 [报告]
发表于 2010-12-23 17:22 |只看该作者
回复 97# renxiao2003


    不会吧{:3_189:}
太要不得了

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
99 [报告]
发表于 2010-12-23 17:26 |只看该作者
回复 98# starzhestarzhe


    确实参加的人好少。从8月提出到现在,你看,总共回复不到三页。我都回了好几帖啊。

论坛徽章:
0
100 [报告]
发表于 2010-12-23 17:26 |只看该作者
回复 99# renxiao2003


    这一回不少了吧,都到十页了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP