(ベータ版)EventFront SQL Speed Storage

📘 EventFront SQL Speed Storage 利用ガイド

EventFront SQL Speed Storageを使ってデータベース操作が行える軽量サーバーです。 ポート 3307 を通じてMySQLクライアントから接続できます。


🚪 接続情報

  • ホスト:sql-speed-ja.mixedercloud.com

  • ポート:3307

  • ユーザー名:APIキー

  • パスワード:なし

  • データベース名:指定不要(無視されます)


✅ サポートされるSQL文

機能
文法例

データ取得

SELECT * FROM users

条件検索

SELECT * FROM users WHERE age > 20 AND gender = 'male'

並び替え

SELECT * FROM users ORDER BY age DESC

件数制限

SELECT * FROM users LIMIT 10 OFFSET 5

データ追加

INSERT INTO users (name, age) VALUES ('Alice', 22)

データ更新

UPDATE users SET age = 23 WHERE id = 1

データ削除

DELETE FROM users WHERE id = 1


❌ 非対応のSQL機能と代替案

機能
状況
代替方法・備考

JOIN

非対応

各テーブルを個別に読み込んで結合処理はクライアント側で実装

GROUP BY

非対応

クライアント側でデータ集計(例:Array.prototype.reduce()

HAVING

非対応

同上

LIKE

非対応

クライアント側で部分一致チェック(includes, match等)

IN, BETWEEN

非対応

WHEREを工夫しクライアント側でフィルタリング

複数行INSERT

非対応

1行ずつINSERTを繰り返す

CREATE TABLE

非対応

最初のINSERT時に自動でテーブルが生成されます

Prepared Statements

非対応

入力値の整形・エスケープはクライアント側で実装

トランザクション

非対応

同時更新やロールバックはサポートしていません


🧠 WHERE条件の詳細

  • AND, OR の複雑な組み合わせに対応(※ただし括弧によるグルーピングは非対応)

  • 使用可能な比較演算子:

    • =, !=, <, >, <=, >=

sqlCopyEditSELECT * FROM users WHERE age >= 18 AND gender = 'male' OR name = 'Alice';

🖥 GUIでの接続方法(DBeaver, HeidiSQL, TablePlusなど)

  1. 新しい接続を作成

  2. MySQL を選択

  3. ホストlocalhost

  4. ポート3307

  5. ユーザー名root(任意)

  6. パスワード:空白でOK

  7. データベース名は空でも可。必要に応じて仮の名前を入力

✅ 注意:EventFront SQL Speed StorageはSQL互換のチューニングサーバーのため、SHOW TABLESDESCRIBE 等のメタ情報取得コマンドは使えません。


💻 各言語での接続サンプル

Node.js(mysql2)

bashCopyEditnpm install mysql2
jsCopyEditconst mysql = require("mysql2/promise");

(async () => {
  const conn = await mysql.createConnection({ host: "localhost", port: 3307, user: "root" });

  const [rows] = await conn.query("SELECT * FROM users WHERE age >= 20 ORDER BY age DESC LIMIT 10");
  console.log(rows);

  await conn.end();
})();

Python(mysql-connector-python)

bashCopyEditpip install mysql-connector-python
pythonCopyEditimport mysql.connector

conn = mysql.connector.connect(
    host="localhost",
    port=3307,
    user="root"
)
cursor = conn.cursor(dictionary=True)

cursor.execute("SELECT * FROM users WHERE age >= 18")
for row in cursor.fetchall():
    print(row)

conn.close()

PHP(PDO)

phpCopyEdit<?php
$pdo = new PDO('mysql:host=127.0.0.1;port=3307;', 'root', '');

$stmt = $pdo->query("SELECT * FROM users WHERE gender = 'female'");
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($rows as $row) {
  echo $row['name'] . "(" . $row['age'] . "歳)<br>";
}
?>

Java(JDBC)

javaCopyEditimport java.sql.*;

public class App {
  public static void main(String[] args) throws Exception {
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/", "root", "");
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("SELECT * FROM users");

    while (rs.next()) {
      System.out.println(rs.getString("name") + " - " + rs.getInt("age"));
    }

    conn.close();
  }
}

C#(.NET + MySql.Data)

csharpCopyEditusing MySql.Data.MySqlClient;

var conn = new MySqlConnection("server=localhost;port=3307;user=root;");
conn.Open();

var cmd = new MySqlCommand("SELECT * FROM users", conn);
var reader = cmd.ExecuteReader();
while (reader.Read())
{
    Console.WriteLine($"{reader["name"]} ({reader["age"]})");
}

conn.Close();

💡 ヒント:未対応機能の代替処理

SQL未対応機能
代替手段(クライアント側)

JOIN

複数回SELECTしてロジックで結合(マッチするIDを手動で照合)

GROUP BY

Array.reduce()groupbyでクライアント側集計

LIKE

includes, match, RegExp を用いた文字列部分一致検索

IN (...)

WHERE column = x OR column = y OR ... または .filter()


📞 サポート

  • 不明点・バグ報告・新機能の要望などは開発者までお問い合わせください。

  • EventFront SQL Speed Storageはベータ版のため、高負荷環境や複数同時接続には向きません。


📦 補足

  • 一般的なSQLサーバーよりも高い負荷に対応したサーバーです。

  • 管理者がテーブル構造をあらかじめ定義しなくても使用可能です。

最終更新

役に立ちましたか?