免费注册 查看新帖 |

Chinaunix

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

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

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


    这个周末php版有活动,你来吧,估计看你的面子,cu得送你点什么,说不定我们还能沾点光

论坛徽章:
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
82 [报告]
发表于 2010-12-17 10:30 |只看该作者
回复 81# starzhestarzhe


    兄弟,你报销车费我就去。呵呵。

论坛徽章:
0
83 [报告]
发表于 2010-12-17 10:33 |只看该作者
回复 82# renxiao2003


    嘿嘿,这个你还是找cu吧,不过在北京坐地铁,坐公交的钱我可以包了,打车费自理

论坛徽章:
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
84 [报告]
发表于 2010-12-17 10:36 |只看该作者
回复 83# starzhestarzhe


    难哈。呵呵。

论坛徽章:
0
85 [报告]
发表于 2010-12-17 16:38 |只看该作者
InnoDB概述
InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。

InnoDB是为处理巨大数据量时的最大性能设计。它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。

InnoDB存储引擎被完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB存储它的表&索引在一个表空间中,表空间可以包含数个文件(或原始磁盘分区)。这与MyISAM表不同,比如在MyISAM表中每个表被存在分离的文件中。InnoDB 表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。

InnoDB默认地被包含在MySQL二进制分发中。Windows Essentials installer使InnoDB成为Windows上MySQL的默认表。

InnoDB被用来在众多需要高性能的大型数据库站点上产生。著名的Internet新闻站点Slashdot.org运行在InnoDB上。Mytrix, Inc.在InnoDB上存储超过1TB的数据,还有一些其它站点在InnoDB上处理平均每秒800次插入/更新的负荷。

论坛徽章:
0
86 [报告]
发表于 2010-12-17 18:12 |只看该作者
今天开会,我们一小队搞技术知识共享,一哥们说innodb尽量别用count统计,而myisam则没问题,因为表存储了相关信息(这个不敢苟同),而我记得的是myisam的表信息只存储了总记录数,而innodb没有,所以针对有where条件过滤的count其实innodb和myisam是一样的,求大牛详解

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-03-12 06:20:00
87 [报告]
发表于 2010-12-20 08:59 |只看该作者
今天开会,我们一小队搞技术知识共享,一哥们说innodb尽量别用count统计,而myisam则没问题,因为表存储了相 ...
starzhestarzhe 发表于 2010-12-17 18:12


还在讨论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
88 [报告]
发表于 2010-12-20 10:29 |只看该作者
尽量别用count统计--------对这个还有疑问的,就想想MVCC和count的时候,db还在不停的insert/delete场景

论坛徽章:
0
89 [报告]
发表于 2010-12-20 12:46 |只看该作者
还在讨论count的问题?
之前我已经回答过这个问题了
qlks 发表于 2010-12-20 08:59


尽量别用count统计--------对这个还有疑问的,就想想MVCC和count的时候,db还在不停的insert/delete场景
ruochen 发表于 2010-12-20 10:29



论点不一样,我想知道的是count在myisam与innodb在where条件下其实是一样的,看了相关文章冒似是这么回事.
   
Sander,

>I'm thinking of switching to InnoDB, however - my application does a few
>COUNT(*) .... WHERE .... queries on large tables (somewhere between 50K
>and 2M rows)
>
>I've read up on InnoDB and its issues with COUNT(*) on entire tables,
>but is there a reason to assume that InnoDB is also slower when there is a
WHERE
>clause present?

no, in the case of COUNT(*) of an entire table MyISAM
is very fast because it keeps a table row count internally.

In the case of COUNT(*) ... WHERE ...
both MyISAM and InnoDB have to really count the matching
rows. Then the speed depends mainly on the amount of disk
i/o needed to access the rows.

Actually, the reason I did not originally put a row count to
InnoDB tables was that I thought most real applications
would ask queries like COUNT(*) ... WHERE. Only later
I have learnt that a plain COUNT(*) is quite common .


http://lists.mysql.com/mysql/85798

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-03-12 06:20:00
90 [报告]
发表于 2010-12-20 14:26 |只看该作者
从逻辑角度上看,在oltp中count出来的结果都是不准确的,不管是InnoDB还是MyISAM

所以还有必要将这些操作放在数据库层来做吗?

另外,InnoDB count(*)慢,但是Oracle,SQL Server也同样慢
MyISAM快是因为它是表锁的,读取内部视图即可

关于count操作的讨论可以结束了吗?

如果要讨论,为什么我们不讨论Oracle和SQL Server的count操作也很慢呢?难道我们都要去用MyISAM?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP