MYSQLデータベースに10 GBのtabelイベントがあります。これはWebアプリケーションサーバーの一部です。このデータベースへのログインは以前はうまく構成されていなかったので、私は単一のテーブル 'イベント'をシンナーにする必要があります。 私は、この値のデータポイント値のログ(行)とタイムスタンプがあることを意味します。 私はすべてを削除することはできません、私はこの表に残る値からグラフを作成することができます。それで私はいくつかの代表的なデータを残す必要があるのです。タイムスタンプ条件を使用して1つのテーブル内でMySQLの行を削除
1つのアイデアは、ts diffがXより小さいか、またはpointValues diffでビルドされていると思われる場合、同じdatapIdを持つ行を削除することです。
適切なクエリを作成するのを手伝ってください。この(テストデータを作成)してみ
:私はあなたの質問を理解していれば
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
}
</style>
</head>
<body>
<table>
<tr>
<th>id</th>
<th>datapId</th>
<th>dataType</th>
<th>pointValue</th>
<th>ts</th>
</tr>
<tr>
<td>1</td>
<td>5194</td>
<td>1</td>
<td>1</td>
<td>15060882793523</td>
</tr>
<tr>
<td>2</td>
<td>5194</td>
<td>1</td>
<td>1.1</td>
<td>15060882793524</td>
</tr>
<tr>
<td>3</td>
<td>5194</td>
<td>1</td>
<td>2.25</td>
<td>15060882793560</td>
</tr>
<tr>
<td>4</td>
<td>5194</td>
<td>1</td>
<td>2.23</td>
<td>15060882793590</td>
</tr>
<tr>
<td>5</td>
<td>5194</td>
<td>1</td>
<td>0</td>
<td>15060882793620</td>
</tr>
</table>
</body>
</html>
を最後に、私はあまり行を持って、この次の方法を行うことを決めたが、データから平均値を計算しないように。私はほとんどの値を持つすべてのデータポイントIDを列挙し、dataPointId = 'X'および(id%2)= 0のdatabase.pointvaluesからすべての偶数(テーブルの自動インクリメントインデックスに基づく)を削除します。 – user4201838