2012-04-24 56 views
0

我有一个非常小的脚本,它从请求头获取一些参数,并将一个INSERT查询发送到本地主机上托管的数据库。MySQL配置建议

该数据库有一个表,我不运行任何形式的报告或任何东西,所以基本上100%的查询到这台服务器是INSERT查询。

脚本被大量访问,所以我得到了很多这些查询同时运行。

我正在寻找方法来调整配置文件,以支持我的特定需求。

编辑

我目前看到的phpMyAdmin-这些变量>的状态,似乎高:

Slow_queries 22 
Handler_read_rnd 1,496 k 
Handler_read_rnd_next 111M 
Created_tmp_disk_tables 495 
Sort_merge_passes 77 
Opened_tables 332 
Table_locks_waited 154 

的原因,我问的是,因为我会得到很多更多的并发连接很快,我想在服务器可以处理它之前进行调整。

+0

你有任何性能问题? (负载太高?) – 2012-04-24 12:28:13

+0

如果表格是**从不**读取,那么它有什么意义? – eggyal 2012-04-24 12:28:59

+0

@eggyal我正在存储数据,每隔几个星期一次将其导出并将其加载到另一个系统 - 另一个系统是我对数据执行其他查询的位置。 – user838437 2012-04-24 12:29:55

回答

0

从你告诉我们,我唯一的建议是将你的表转换为使用InnoDB引擎,如果它目前使用另一个引擎。原因是,在InnoDB中,INSERTs非常快(行按主键顺序存储,所以它们基本上只是附加到表的末尾)。

+0

好的..我目前正在使用MyISAM - 在将此更改为InnoDB之后,我应该有多少区别? – user838437 2012-04-24 12:39:28

+0

@Sobolan,不能正确。 MyISAM和InnoDB在内部非常不同。因此,如果我在InnoDB中有一个电子邮件地址作为主键,它会将其追加到最后?没有机会。 InnoDB将其信息存储在btree中。因此它会将电子邮件地址放在适合主键顺序的地方。 MyIsam的工作方式不同请参阅http://stackoverflow.com/questions/2362667/how-b-tree-indexing-works-in-mysql – Namphibian 2012-04-24 12:50:53

+0

另请阅读http://rorguide.blogspot.com/2011/06/difference-between -innodb-and-myisam.html InnoDB非常适合ACID投诉表,但在您的情况下,MyISAM可能更有意义。基本上在MyISAM表中,记录总是附加在最后。 MyISAM是一个堆,主键是堆栈顶部的索引。这使得记录数据变得很快。然而,这两者是截然不同的。在InnoDB中,数据按照主键的顺序存储。在MyISAM中,它最后附有一个索引,指向MyISAM文件中的记录位置。 – Namphibian 2012-04-24 12:55:00