搜索
首页数据库mysql教程 互联网创业的准备数据库:硬盘iops、mysql

《互联网创业的准备》系列文章 硬盘常识: 机械硬盘HDD固态硬盘SSD 最小单位1个扇区为512B,或4K(2012年民用普及)1个分页为4K、8K或更高() 性能因素转速(rpm):5400、7200、1w、1.5w层数:SLC(单层快)、MLC(双层慢)、TLC(三层更慢,SSD暂未采用,

《互联网创业的准备》系列文章——

硬盘常识:

  机械硬盘HDD 固态硬盘SSD

最小单位 1个扇区为512B,或4K(2012年民用普及) 1个分页为4K、8K或更高()

性能因素 转速(rpm):5400、7200、1w、1.5w 层数:SLC(单层快)、MLC(双层慢)、TLC(三层更慢,SSD暂未采用,U盘大量采用)

接口 SATA 3G、SATA 6G(2012年民用普及)、SAS 6G SATA 3G、SATA 6G、SAS 6G、PCI-E

尺寸 2.5英寸、3.5英寸 2.5英寸、PCI-E版型

常见品牌 西部数据、希捷 Intel、镁光(Crucial)、浦科特(PLEXTOR)

硬盘性能指标:

连续读写(常用单位为MB/s):文件在硬盘上存储位置是连续的,适用场景:大文件拷贝(比如视频音乐)。速度即使很高,对数据库性能也没有参考价值。

4K随机读写(常用单位为iops):在硬盘上随机位置读写数据,每次4KB,适用场景:操作系统运行、软件运行、数据库。(图片静态服务器、视频静态服务器是大文件,测试64K随机或更大)

 

常用硬盘性能测试软件:

Windows:AS SSD Benchmark、CrystalDiskMark、HD Tune Pro、iometer

Linux:iometer

Align I/Os:硬盘IO大小。测试设备时根据硬盘最小单位进行选择,机械硬盘上选512B或4K,SSD上选4K、8K等。测试分区时受分区sector size影响。由于Linux ext3的sector size为4096,所以在扇区为512B的机械硬盘上也无法选择Align I/Os on 512B进行测试,测试效果不佳。vps无法进行设备测试,如果是自购服务器,应使用设备测试。

Seq 即 Sequential 即连续读写。AS SSD会先以16MB的尺寸为单位,持续向受测分区写入生成1个达到1GB大小的文件,然后再以同样的单位尺寸读取这个,最后计算平均成绩而给出结果。

4K 即 Random 4k, Queue Depth=1 即 随机4K并发1个队列。AS SSD会以512KB的单位尺寸生成1GB大小的测试文件,然后在其地址范围(LBA)内进行随机4KB单位尺寸进行写入及读取测试,直到跑遍这个范围为止,最后同样计算平均成绩给出结果。

4K QD32 即 Random 4k, Queue Depth=32 即 随机4K并发32个队列。

4K-64Thrd 即 4K, 64 Thread 即 随机4K并发64个线程,和 4K QD64是一个意思。AS SSD会生成64个16MB大小的测试文件(共计1GB),然后同时以4KB的单位尺寸,同时在这64个文件中进行写入和读取测试,最后依然以平均成绩为结果。

通过AS SSD可以看出,iops与MB/s可以直接换算,比如4K读取是6227iops,即每秒钟可以读取6227个4K的文件,即 6227 * 4K / 1024 = 24.3 MB/s。

Intel的SSD性能数据采用iometer 4K QD32的测试结果:

价格与速度:

  型号 容量 2012价格 4K QD32随机读/写(iops) 4K QD64 连续读写(MB/s)

民用 机械7200rpm 3.5英寸 SATA 6G 希捷Barracuda 7200.14 3TB ¥1.1k 409/365 386/291 200/180

企业级 机械10000rpm 2.5英寸 SAS 6G  希捷Savvio 10K.5 300GB ¥1k 750/700   170/170

企业级 机械15000rpm 2.5英寸 SAS 6G 希捷Savvio 15K.3 300GB ¥2.2k      

企业级 固态SLC 2.5英寸 SATA 3G Intel X25-E 32G ¥2.5k 3.5w/3.3k   250/170

企业级 固态MLC PCI-E Intel 910 400G ¥14w 9w/3.8w   1000/750

企业级 固态MLC PCI-E Intel 710 100G ¥2.5k 3.8w/2.3k   270/170

民用 固态MLC 2.5英寸 SATA 6G Intel 520 120G ¥840 2.5w/8w   550/500

民用 固态MLC 2.5英寸 SATA 6G 镁光 M4 128G ¥800 7.8w/4.2w 7w/4w 500/175

 

为什么民用SSD的iops很高价格却很低,而企业级SSD的iops有的很低而价格却很高?因为企业级SSD的耐用性高,比如Intel 710 100G寿命为4K写入500TB,即5000次全盘写入。

Intel SSD寿命指标:smart中的“E8:Avai lable Reserved Space”:可用的预留闪存数量、“E9:Media Wearout Indicator”:闪存磨耗指数。其他厂商的SSD类似,比如镁光的wear leaving count。

SSD新盘的剩余磨损为100,当低于10时,应更换,报废。

 

todo:数据库的选择

关系型数据库用Mysql还是PostgreSQL,或者全用NoSQL?mongo还是hbase?

Mysql 和 PostgreSQL都可以。mysql用的人多,但是oracle收购sun以后,把mysql限制的更加封闭,正在衰落,和可能和OpenOffice一样被oracle整死,免备案空间,衍生出LibreOffice。但不用很担心,即使mysql被oracle整死,也会衍生出开源版本,使用方式一样。

关系型数据库和NoSQL搭配使用较好,关系型适合底层业务,NoSQL适合上层业务。关注淘宝hbase的使用。

Mysql性能与硬盘iops的关系:

mysql可以把读取结果放在内存中,即query cache,所以db server安装大内存即可实现只读内存、不读硬盘。

当预计数据量会增长到超过内存大小时,进行分表(把一个表中的数据拆分),放到多个大内存服务器上,保证每个服务器上的数据都小于内存大小,香港服务器,即可实现全部缓存。

2012年内存价格:UDIMM no ECC DDR3 1600民用内存 ¥270/8GB,RDIMM ECC DDR3 1600服务器内存 ¥440/8G。但一台服务器能安装的内存有限,2012年典型的Dell服务器有24个插槽,主板芯片支持768G内存,2012年DDR3内存生产工艺最高是单条8G(DDR4已实现单条16G,但主板尚未支持DDR4),所以一台服务器最大内存192G(¥440 * 24条 = 1w)。

数据库写入时必须写硬盘(否则就不叫持久化存储了……),¥2.5k的Intel 710企业级SSD的写入iops为2.3k,而万转硬盘的iops为700,如果要达到SSD的性能,需要多块万转硬盘组RAID。如果使用iops为3w的SSD,性能比机械硬盘提升了30倍。

如果数据量不大,远低于192G,就不需要做分表了吗?

仍然要分表,原因有2个:

1、大内存会提升mysql读取性能,但并发读取能力也是有上限的,香港虚拟主机,这时受CPU性能限制,2012年典型的服务器是双路,即2个8核CPU(mysql内存并发待测试)。

2、内存很大,对并发写入能力没有作用,写入能力完全依赖于硬盘的iops。一台服务器的写入性能很有限,请看下面的测试。

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
mysql:blob和其他无-SQL存储,有什么区别?mysql:blob和其他无-SQL存储,有什么区别?May 13, 2025 am 12:14 AM

mysql'sblobissuitableForStoringBinaryDataWithInareLationalDatabase,而alenosqloptionslikemongodb,redis和calablesolutionsoluntionsoluntionsoluntionsolundortionsolunsolunsstructureddata.blobobobsimplobissimplobisslowderperformandperformanceperformancewithlararengelitiate;

mySQL添加用户:语法,选项和安全性最佳实践mySQL添加用户:语法,选项和安全性最佳实践May 13, 2025 am 12:12 AM

toaddauserinmysql,使用:createUser'username'@'host'Indessify'password'; there'showtodoitsecurely:1)choosethehostcarecarefullytocon trolaccess.2)setResourcelimitswithoptionslikemax_queries_per_hour.3)usestrong,iniquepasswords.4)Enforcessl/tlsconnectionswith

MySQL:如何避免字符串数据类型常见错误?MySQL:如何避免字符串数据类型常见错误?May 13, 2025 am 12:09 AM

toAvoidCommonMistakeswithStringDatatatPesInMysQl,CloseStringTypenuances,chosethirtightType,andManageEngencodingAndCollat​​ionsEttingsefectery.1)usecharforfixed lengengters lengengtings,varchar forbariaible lengength,varchariable length,andtext/blobforlabforlargerdata.2 seterters seterters seterters seterters

mySQL:字符串数据类型和枚举?mySQL:字符串数据类型和枚举?May 13, 2025 am 12:05 AM

mysqloffersechar,varchar,text,and denumforstringdata.usecharforfixed Lengttrings,varcharerforvariable长度,文本forlarger文本,andenumforenforcingDataAntegrityWithaEtofValues。

mysql blob:如何优化斑点请求mysql blob:如何优化斑点请求May 13, 2025 am 12:03 AM

优化MySQLBLOB请求可以通过以下策略:1.减少BLOB查询频率,使用独立请求或延迟加载;2.选择合适的BLOB类型(如TINYBLOB);3.将BLOB数据分离到单独表中;4.在应用层压缩BLOB数据;5.对BLOB元数据建立索引。这些方法结合实际应用中的监控、缓存和数据分片,可以有效提升性能。

将用户添加到MySQL:完整的教程将用户添加到MySQL:完整的教程May 12, 2025 am 12:14 AM

掌握添加MySQL用户的方法对于数据库管理员和开发者至关重要,因为它确保数据库的安全性和访问控制。1)使用CREATEUSER命令创建新用户,2)通过GRANT命令分配权限,3)使用FLUSHPRIVILEGES确保权限生效,4)定期审计和清理用户账户以维护性能和安全。

掌握mySQL字符串数据类型:varchar vs.文本与char掌握mySQL字符串数据类型:varchar vs.文本与charMay 12, 2025 am 12:12 AM

chosecharforfixed-lengthdata,varcharforvariable-lengthdata,andtextforlargetextfield.1)chariseffity forconsistent-lengthdatalikecodes.2)varcharsuitsvariable-lengthdatalikenames,ballancingflexibilitibility andperformance.3)

MySQL:字符串数据类型和索引:最佳实践MySQL:字符串数据类型和索引:最佳实践May 12, 2025 am 12:11 AM

在MySQL中处理字符串数据类型和索引的最佳实践包括:1)选择合适的字符串类型,如CHAR用于固定长度,VARCHAR用于可变长度,TEXT用于大文本;2)谨慎索引,避免过度索引,针对常用查询创建索引;3)使用前缀索引和全文索引优化长字符串搜索;4)定期监控和优化索引,保持索引小巧高效。通过这些方法,可以在读取和写入性能之间取得平衡,提升数据库效率。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器