私は 15 分ごとに cron ジョブを実行しています。これはフィードを取り込み、それをデータベースに保存します。これは新しいデータベースから正常に動作し、15 分ごとにデータベースにデータが取り込まれていることがわかります。
しかし、たとえば 2 週間後、データベースは上限に達したようで、データを適切に保存できなくなります。コード イグナイター アプリを使用してデータを取得することはできません。大量のデータを処理する最善の方法は何ですか?
私は専用サーバーで作業しており、以前は 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
申し訳ありませんが、この質問はばかげて長くなりますが、以下に必要なもので更新しようとしているのは、コードイグニターを使用した挿入です。これを正しく接続および切断するにはどうすればよいですか
<?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'];
}
}
}
みんな助けてくれてありがとう