那么怎么让mysql把index索引建在ssd上并使用ssd上的index数据呢?
1.在ssd上建几个目录
mkdir /ssd/mysql_indexes
mkdir /ssd/mysql_indexes/my_big_db_name
chmod 700 /ssd/mysql_indexes
chown –R mysql:mysql /ssd/mysql_indexes
2.使用MyISAM引擎的可以在mysql的配置中添加下面配置,可以加速索引的重建
[mysqld]
myisam_repair_threads=10
3.最后我们执行下面的query让mysql切换表的索引数据位置
ALTER TABLE my_table INDEX DIRECTORY= '/ssd/mysql_indexes/my_big_db_name'
这个必须得等到mysql的index重建之后,才能明显感觉到数据库已经快起来了。
对于运行mysql这类程序需要的CPU要求比较高,如果电脑硬件配置满足不了,那么可以试试最近流行的云桌面来轻松运行mysql,让你轻松办公或者学习。
mysql硬盘配置具体配置如下:
(1)磁盘寻道能力(磁盘I/O),我们现在用的都是SAS15000转的硬盘,用6块这样的硬盘作RAID1+0。MySQL每一秒钟都在进行大量、复杂的查询 *** 作,对磁盘的读写量可想而知,所以,通常认为磁盘I/O是制约MySQL性能的因素之一。
对于日均访问量100万pv以上的Discuz!论坛,如果磁盘I/O性能不好,造成的直接后果是MySQL的性能会非常低下!解决这一制约因素可以考虑解决方案是:使用RAID1+0磁盘阵列,注意不要尝试使用RAID-5,MySQL在RAID-5磁盘阵列上的效率不会像你期待的那样快,如果资金允许,可以选择固态硬盘SSD来SAS硬件作RAID1+0。
(2)CPU对于MySQL的影响也是不容忽视的,建议选择运算能力强悍的CPU。推荐使用DELL PowerEdge R710,IntelE5504(双四核)商家的热点也是其强大的虚拟化和数据库能力。我现在比较喜欢用其做Linux/FreeBSD下的虚拟化应用,效果不错。
(3)对于一台使用MySQL的Database Server来说,建议服务器的内存不要小于2GB,推荐使用4GB以上的物理内存。不过内存对于现在的服务器而言可以说是一个可以忽略的问题,如果是高端服务器,基本上内存都超过了32GB,我们的数据库服务器都是32GB DDR3。
试过,自用笔记本是只有一个固态硬盘,同样的mysql版本和建表语句和索引。
利用LOAD
DATA
local
INFILE
'fileName'
INTO
TABLE
表名
插入60万数据,
固态硬盘
大概4秒钟。回家用台式机,机械硬盘,则大概需要28秒,中间的差距还是很明显的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)