2012-08-16 91 views
0

我每隔15分钟运行一次cron作业,它会提取feed并将它们存储到数据库,从新的新数据库中可以正常工作,并且我可以看到每隔15分钟我的数据库就会被填充。Mysql达到最大限制

但后说两个星期数据库似乎达到其最大极限,不会再存储数据以及我可不能拉下它通过我的代码点火器的应用程序,什么是处理大量数据的最佳方式?

我正在使用专用服务器,并且对mysql以前的高数据需求知之甚少。这里是我的/etc/my.cnf中的设置

[client] 
port   = 3306 
socket   = /var/lib/mysql/mysql.sock 


[mysqld_safe] 
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

innodb_buffer_pool_size=2M 
innodb_additional_mem_pool_size=500K 
innodb_log_buffer_size=500K 
innodb_thread_concurrency=2 

[mysqld] 
local-infile=0 
datadir=/var/lib/mysql 
user=mysql 
symbolic-links=0 

max_connections = 100 
wait_timeout = 60 
query-cache-type = 1 
query-cache-size = 8M 
query_cache_limit = 2M 
thread_cache_size = 8 
tmp_table_size = 16M 
max_heap_table_size = 16M 
join_buffer_size = 1M 
table_open_cache = 64 

port   = 3306 
socket   = /var/lib/mysql/mysql.sock 
skip-external-locking 
key_buffer_size = 16M 
max_allowed_packet = 1M 
sort_buffer_size = 512K 
net_buffer_length = 8K 
read_buffer_size = 256K 
read_rnd_buffer_size = 512K 
myisam_sort_buffer_size = 8M 






innodb_buffer_pool_size = 16M 
innodb_additional_mem_pool_size = 2M 
innodb_log_buffer_size = 8M 

[mysqldump] 
quick 
max_allowed_packet = 16M 

[mysql] 
no-auto-rehash 

[myisamchk] 
key_buffer_size = 20M 
sort_buffer_size = 20M 
read_buffer = 2M 
write_buffer = 2M 

[mysqlhotcopy] 
interactive-timeout 

什么是最大明智的设置,我可以设置,使我的SQL过去很长一段时间,是的,我不知道很多关于这个真的很需要保持这个运行,因为我不能清除数据,然后再次开始填充数据库,我需要它来保存。

谢谢你是进步;)

修订

哇,我不知道什么最关这意味着不好看寿

120803 08:45:19 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 
120803 8:45:19 [Note] Plugin 'FEDERATED' is disabled. 
120803 8:45:19 InnoDB: Initializing buffer pool, size = 8.0M 
120803 8:45:19 InnoDB: Completed initialization of buffer pool 
InnoDB: The first specified data file ./ibdata1 did not exist: 
InnoDB: a new database to be created! 
120803 8:45:19 InnoDB: Setting file ./ibdata1 size to 10 MB 
InnoDB: Database physically writes the file full: wait... 
120803 8:45:19 InnoDB: Log file ./ib_logfile0 did not exist: new to be created 
InnoDB: Setting log file ./ib_logfile0 size to 5 MB 
InnoDB: Database physically writes the file full: wait... 
120803 8:45:19 InnoDB: Log file ./ib_logfile1 did not exist: new to be created 
InnoDB: Setting log file ./ib_logfile1 size to 5 MB 
InnoDB: Database physically writes the file full: wait... 
InnoDB: Doublewrite buffer not found: creating new 
InnoDB: Doublewrite buffer created 
InnoDB: Creating foreign key constraint system tables 
InnoDB: Foreign key constraint system tables created 
120803 8:45:19 InnoDB: Started; log sequence number 0 0 
120803 8:45:19 [Note] Event Scheduler: Loaded 0 events 
120803 8:45:19 [Note] /usr/libexec/mysqld: ready for connections. 
Version: '5.1.54' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL) by Remi 
120803 8:45:21 [Note] /usr/libexec/mysqld: Normal shutdown 

120803 8:45:21 [Note] Event Scheduler: Purging the queue. 0 events 
120803 8:45:21 InnoDB: Starting shutdown... 
120803 8:45:25 InnoDB: Shutdown completed; log sequence number 0 721938 
120803 8:45:25 [Note] /usr/libexec/mysqld: Shutdown complete 

120803 08:45:25 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 
120803 08:45:25 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 
120803 8:45:25 [Note] Plugin 'FEDERATED' is disabled. 
120803 8:45:25 [Warning] option 'innodb-additional-mem-pool-size': signed value 512000 adjusted to 524288 
120803 8:45:25 InnoDB: Initializing buffer pool, size = 2.0M 
120803 8:45:25 InnoDB: Completed initialization of buffer pool 
120803 8:45:25 InnoDB: Started; log sequence number 0 721938 
120803 8:45:25 [Note] Event Scheduler: Loaded 0 events 
120803 8:45:25 [Note] /usr/libexec/mysqld: ready for connections. 
Version: '5.1.54' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL) by Remi 
120803 8:47:37 [Note] /usr/libexec/mysqld: Normal shutdown 

120803 8:47:37 [Note] Event Scheduler: Purging the queue. 0 events 
120803 8:47:37 InnoDB: Starting shutdown... 
120803 8:47:40 InnoDB: Shutdown completed; log sequence number 0 1357212 
120803 8:47:40 [Note] /usr/libexec/mysqld: Shutdown complete 

120803 08:47:40 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 
120803 08:47:41 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 
120803 8:47:41 [Note] Plugin 'FEDERATED' is disabled. 
120803 8:47:41 InnoDB: Initializing buffer pool, size = 16.0M 
120803 8:47:41 InnoDB: Completed initialization of buffer pool 
120803 8:47:41 InnoDB: Started; log sequence number 0 1357212 
120803 8:47:41 [Note] Event Scheduler: Loaded 0 events 
120803 8:47:41 [Note] /usr/libexec/mysqld: ready for connections. 
Version: '5.1.54' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL) by Remi 
120803 8:47:44 [Note] /usr/libexec/mysqld: Normal shutdown 

120803 8:47:44 [Note] Event Scheduler: Purging the queue. 0 events 
120803 8:47:44 InnoDB: Starting shutdown... 
120803 8:47:46 InnoDB: Shutdown completed; log sequence number 0 1357212 
120803 8:47:46 [Note] /usr/libexec/mysqld: Shutdown complete 

120803 08:47:46 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 
120803 08:48:08 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 
120803 8:48:08 [Note] Plugin 'FEDERATED' is disabled. 
120803 8:48:08 InnoDB: Initializing buffer pool, size = 16.0M 

对不起这个问题越来越愚蠢长,但只是试图更新与我需要下面是我的codeignitor插入我应该如何做到这一点正确连接和断开连接

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 


class Cron_model extends CI_Model { 

    function addResults($data){ 

     $this->db->select('*'); 
     $this->db->from('articles'); 
     $this->db->limit(5); 
     $this->db->like('title', $data['title']); 
     $this->db->order_by("date", "desc"); 
     $query=$this->db->get(); 

     if(!$query->num_rows()){ 

      $this->db->insert('articles', $data); 

      return $data['title']; 

     } 

    } 


} 

感谢您的帮助大家

+0

你是从应用程序运行这个吗?听起来这个应用程序没有关闭它的SQL连接,并且达到了最大限制。 – TheGeekZn 2012-08-16 10:16:14

+0

你可以发布日志中的错误吗? – 2012-08-16 10:16:42

+0

现在得到错误日志 – user1503606 2012-08-16 10:19:54

回答

0

您如何连接数据库?对于您所描述的过程,您应该每次连接和断开连接。

+0

您好JshsterPP我已经更新了我的答案,以显示我的查询在底部,我正确地做到这一点? – user1503606 2012-08-16 10:36:54

+0

你的代码仍然缺少你如何连接和断开数据库连接!你的代码显示它是如何执行的,但它如何与数据库建立连接,并在最后断开连接。 – JshsterPP 2012-08-16 11:20:58

+0

您好我使用codeigniter处理所有的数据库连接 – user1503606 2012-08-16 12:31:05