我有一台配备 2 个 SSD 的服务器。我正在运行 LAMP 安装,并在其上安装了一个 innoDB 数据库。
我的问题是:
1) innoDB 会自动使用两个 SSD 还是只使用一个? 2) 如果我使用 2 个 HDD 而不是 2 个 SSD,是否会严重影响性能?
谢谢
答案1
innoDB 会自动使用两个 SSD 还是只使用一个?
不,InnoDB(和 MySQL)对您的存储子系统一无所知。您需要根据需要配置存储设备(RAID、LVM、文件系统等),将存储安装在您选择的位置,然后指示 MySQL 使用它。
如果我使用 2 个 HDD 而不是 2 个 SSD,是否会导致性能严重下降?
这完全取决于您的工作量和块设备的功能。如果您有旧的或便宜的 SSD,但有 15k 光纤通道硬盘,那么这些硬盘将遍历您的 SSD。
旋转硬盘在处理顺序工作负载时往往表现更好,而 SSD 在处理随机 IO 时往往表现更好。
答案2
您可以让 InnoDB 使用两个或多个单独的设备,而无需使用 RAId 或其他东西,您只需要在 innodb_data_file_path 变量中指定多个文件
就像是:
innodb_data_file_path = /ssd1/ibdata1:1024M;/ssd2/ibdata2:1024M;/ssd1/ibdata3:1024M;/ssd2/ibdata4:128M:自动扩展
会将数据库的第一个 GB 数据放在第一个 SSD 上,然后将第二个 GB 数据放在另一个 SSD 上,依此类推。
最好使用“innodb_file_per_table”,它为每个表创建一个单独的 innodb 文件,然后您可以将不同的表或数据库符号链接到不同的驱动器,以进行负载平衡,但是您认为这将在您需要的地方为您提供最佳性能。
这样做既有优点也有缺点。速度的最佳解决方案是拥有足够的 RAM 以将所有 innodb 数据缓存在内存中。