网友提问:
1.问题主题
如何记录用户发表的文章的点击量
2.问题补充描述
当并发非常小的时候可以直接存在这个文章表里面,叫一个click_count,但是如果网站的访问量很高,那这样数据库肯定要累死,各位大牛有什么好的解决办法么?
mysqlops回答:
我们只讨论访问量很高的情况,例如:每天1亿及以上PV的新闻网站,建议做法可以分为2种方式:
1.使用缓存系统,
今天的主角就是数字参考表,什么是数字参考表?一个表中,存放了从1开始连续到很大值的数字的表,我们称为数字参考表。
DROP TABLE IF EXISTS ref_number; CREATE TABLE `ref_number` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `status` TINYINT(3) DEFAULT 0 NOT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB DEFAULT CHARSET=utf8
#填充数据的存储过程
DELIMITER $$ USE `test`$$ DROP PROCEDURE IF EXISTS `sp_pCreateNums`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_pCreateNums`( cnt INT UNSIGNED)
文/何登成
导读:
来自网易研究院的MySQL内核技术研究人何登成,把MySQL数据库InnoDB存储引擎的多版本控制(简称:MVCC)实现原理,做了深入的研究与详细的文字图表分析,方便大家理解InnoDB存储引擎实现的多版本控制技术(简称:MVCC)。
假设对于多版本控制(MVCC)的基础知识,有所了解。MySQL数据库InnoDB存储引擎为了实现多版本的一致性读,采用的是基于回滚段的协议。
MySQL数据库InnoDB存储引擎表数据的组织方式为主键聚簇索引。由于采用索引组织表结构,记录的ROWID是可变的(索引页分裂的时候,Structure Modification Operation,SMO),因此二级索引中采用的是(索引键值, 主键键值)的组合来唯一确定一条记录。
【导读】
针对四种数据类型:布尔类型BOOL或称布尔类型BOOLEAN、微整型TINYTINT、枚举类型ENUM、集合类型SET,我们已经分多篇文章篇幅给出详细的介绍与功能测试数据,接下来我们深入介绍枚举类型EUNM和集合类型SET。测试基于InnoDB存储引擎上,对MySQL数据库枚举类型ENUM的字段进行DDL变更操作,是否需要重新创建表呢?对数据库的事务处理有何影响?对数据库的数据服务提供有何性能影响?
(一) 系统环境
硬件:DELL R510 10块盘做的RAID5,上面跑了几十个虚拟机
操作系统:CentOS release 5.5 (Final)
MySQL数据库:5.5.15-log
InnoDB存储引擎:plugin-InnoDB 1.1.8
【导读】
2012年2月23日,甲骨文公司联合上海爱可生信息技术有限公司,于上海举办的MySQL创新技术大会上宣布MySQL 5.6企业版本的开发蓝图,并且MySQL官方网站提前一天公布停止更新MySQL 5.1版本的计划,以及会议现场嘉宾分享与问答交流的信息,越来越使我们意识到MySQL数据库产品,将会因甲骨文公司的市场战略需要,而重新走向另外一个MySQL用户不太乐意看见的方向。
(一) 信息梳理
(1). 甲骨文于2005年10月份收购InnoDB存储引擎开发商芬兰公司Innobase;
(2). SUN于2008年1月份收购MySQL AB公司;
(3). 甲骨文于2009年4月份收购SUN公司及其子公司的全部资产;