先非常简单的介绍下应用场景吧:
(1)网站应用,读大于写,或者说至少80%是select
(2)核心业务比较简单,核心就三种数据A、B、C;这三类数据都是简单的数据类型,不涉及大字段或者很长的char类型
(3)数据量的估算暂定为2年左右的预期增长吧
(i)A的数据量大约在10~50万之间,即预期前期(前半年)10万左右,2年内增长到50万左右。
(ii)B的数据量大约是A的15倍左右。
(iii)C的数量大约是B的20倍左右。
(iv)即,如果A有20万条,B大约300万条,C大约6000万条。
(4)因为是一个接近服务器的东西,并发数不会太高,预期150~300rps
数据库本身没得选,就是MySQL。其他客观条件决定了。
当然,这个数据量分表是必须的了,这里就不多说了。前期设计的时候就考虑到了分表。
现在主要是上线的引擎选择:MyISAM还是InnoDB?
两种引擎的差异挺大,具体到这个应用,分别的最具有吸引力的地方:
MyISAM:表结构、数据、索引单独存储
InnoDB:行锁
对于事务的支持,有则更好,没有也无妨,毕竟业务逻辑不负责,在应用里面处理也不错
望大家支招。
======================
建议InnoDB吧,虽然MyISAM很适合你目前描述的场景,但MyISAM的数据恢复简单就是灾难,除非数据丢失不重要。
使用MC+InnoDB 解决性能问题。
=======================
谢谢大家支招
前两天测试了下3000万条数据的情况(数据根据实际场景随即生成,不是顺序的插入2000万条数据)。
目前而言,针对的key的select性能还是可以接受。
为了测试MySQL配置与数据量的一个大致关系。第一阶段的测试基于极其有限资源(表空间用单数据文件,MySQL配置小内存)
之前配置了一个实例,MySQL整体的内存占用量配置在180~200M之间,表空间接近4G。基于此配置,对于C表基于A外键(业务如此,数据库并不建外键)的select第一次在0.7秒左右,第二次就压到0.01秒了(当然了,基于索引的检索,DB cache罢了)。实际应用中如果再加上一级应用缓存(至于用MC或者其他当时候再确定),DB的压力会更小一些。测试的整体情况而言,是可以接受的。
后续会逐渐增大数据量、分割表空间、分表甚至做更多分割、慢慢增大MySQL数据量进行测试。。。。。
平时还要很多其他杂事,估计测试过程会比较长。。。。期望春节前能完成。
============================
现阶段还考虑到单表建库,这个从数据管理的角度最好了;但是对于开发的整体要求比较高、底层的框架变动也不少。。。
平衡中。。。。
===========================
如果读远远大于写,并且不需要事务支持,建议myisam,前端加缓存分压,表大分表。
========================
分享到:
相关推荐
navicat8lite下载 navicat8lite_mysql_en下载 navicat8lite_mysql_en mysql客户端下载 非常不错的mysql客户端
navicat112_mysql_cs_x64.tar.gz
navicat8lite_mysql_cs(MySQL图形化工具) :它是一个功能齐全的、基于GUI的MySQL客户端程序,可以跨平台操作。它提供多种风格的用户界面,支持简体中文,易于操作,某些操作界面与SQL Server数据库系统的客户端工具...
mysql_pwd_crack.rar 加上个木头字典 ,自己写也ok
压缩包中包含navicat_for_mysql_10.0.11_...由于linux里安装Navicat需要安装另一个环境wine,其安装很繁琐,而本Navicat安装包中已经自带wine环境,不需要另外安装wine环境,只需按照压缩包里面的安装方法去安装既可!
MySQL_5.1_zh.chm
lib_mysqludf_sys 的win版本dll库
简体中文版的强大的MySql数据库访问工具,给有需要的人
navicat_for_mysql_10.0.11_cn_linux.tar.gz
Access-to-MySQL Access数据库转MySQL数据库 DBF-to-MySQL DBF数据库转MySQL数据库 Excel-to-MySQL Excel数据库转MySQL数据库 MSSQL-to-MySQL MSSQL数据库转MySQL数据库 SQL Server数据库转MySQL数据库 MySQL-to-...
mysql数据库互相转换及同步工具-MySQL_MySQL字符集互转
尚硅谷_MySQL高级_存储引擎简介 · 10.尚硅谷_MySQL高级_SQL性能下降原因 · 11.尚硅谷_MySQL高级_SQL执行加载顺序 · 12.尚硅谷_MySQL高级_七种JOIN理论 · 13.尚硅谷_MySQL高级_七种JOIN的SQL编写 · 14....
jsp+mysql+tomcat+myeclipse+mysql_front留言板jsp+mysql+tomcat+myeclipse+mysql_front留言板jsp+mysql+tomcat+myeclipse+mysql_front留言板jsp+mysql+tomcat+myeclipse+mysql_front留言板
MySQL内核_InnoDB存储引擎(卷1)_753281.pdf
最新mysql for linux 最新客户端,要下载服务端,开发包,share包的话,我在csdn上上传了统一版本高的,欢迎下载!
mysql_配置详细说明.docx mysql_配置详解
8.3.5 使用外键 8.4 创建并使用一个数据库 8.4.1 创建并选用一个数据库 8.4.2 创建一个数据库表 8.4.3 将数据装入数据库表 8.4.4 从一个数据库表检索信息 8.4.4.1 选择所有数据 ...
8.3.5 使用外键 8.4 创建并使用一个数据库 8.4.1 创建并选用一个数据库 8.4.2 创建一个数据库表 8.4.3 将数据装入数据库表 8.4.4 从一个数据库表检索信息 8.4.4.1 选择所有数据 8.4...
MySQL_5.5中文参考手册!MySQL_5.5中文参考手册!MySQL_5.5中文参考手册!MySQL_5.5中文参考手册!MySQL_5.5中文参考手册!MySQL_5.5中文参考手册!MySQL_5.5中文参考手册!MySQL_5.5中文参考手册!
printf("%st%st%st%st%st%sn",mysql_row[0],mysql_row[1],mysql_row[2],mysql_row[3],mysql_row[4],mysql_row[5]); } } else { exit(-1); } mysql_free_result(mysql_ret); exit...