は、これは私がSQLデータベースへの複数のインスタンスを追加する方法です。
global $db; //create database object
//if database tables does not exist already create them
if($db->query('SELECT 1 from store_access') == FALSE) {
$query = 'CREATE TABLE store_access (
`access_id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_id` bigint(20) NOT NULL,
`store_id` bigint(20) NOT NULL,
`sales` bigint(20) NOT NULL,
`purchase` bigint(20) NOT NULL,
`vendors` bigint(20) NOT NULL,
`clients` bigint(20) NOT NULL,
`products` bigint(20) NOT NULL,
`warehouse` bigint(20) NOT NULL,
`returns` bigint(20) NOT NULL,
`price_level` bigint(20) NOT NULL,
`reports` bigint(20) NOT NULL,
`expenses` bigint(20) NOT NULL,
PRIMARY KEY (`access_id`)
)';
$result = $db->query($query) or die($db->error);
echo 'Store Access Table created.<br>';
} //creating user level table ends.
私はがexecuteBatchはそれが1デシベルの呼び出しとパフォーマンスに挿入を行いますので、それ自体が複数のスレッドがこれらの挿入が遅くなり、はるかに優れた選択肢である、とDBプールからの複数のソケット接続可能かもしれない使用されますと言うでしょうまた、接続が1つしかない場合、他のすべてのスレッドはその接続を使用するのを待ちます。 –
おそらくデータがどれほど価値があるかによって異なります。場合によっては、何かをアーカイブする必要があるときに、リアルタイムのデータが必要ないときにデータベースに書き込むリンクキューを持つスレッドがあり、メインスレッドはそのキューにレコードを追加して処理します。 – Marvin
@Marvin。これは、マルチスレッドが第1オプションより遅いことを意味します。私はリアルタイムでそれが必要です。 –