sql >> データベース >  >> RDS >> Mysql

高度なMySQL参加。クエリの高速化

    方法はありますが、フィールドを追加すればするほどコストがかかります。同じことが、追加のユーザーデータをその形式で保存することを選択する多くのCMSでも発生します。

    これを使用して、機能する検索SQLを取得できます:

    SELECT
        users.*,
        firstname.data AS firstname,
        lastname.data AS lastname,
        eyecolor.data AS eyecolor,
    
    FROM
        users
        LEFT JOIN completed_form_fields AS firstname ON firstname.userid = users.id AND firstname.fieldkey = "firstname"
        LEFT JOIN completed_form_fields AS lastname ON lastname.userid = users.id AND lastname.fieldkey = "lastname"
        LEFT JOIN completed_form_fields AS eyecolor ON eyecolor.userid = users.id AND eyecolor.fieldkey = "eyecolor"
    
    WHERE
        firstname.data LIKE '%searchdata%'
        OR lastname.data LIKE '%searchdata%'
        OR eyecolor.data LIKE '%searchdata%'
    

    この方法は、テーブルを追加するほど、MySQLサーバーにとって非常に大きく高価になります。したがって、そのように10〜15を超えて参加しないことをお勧めします。その後、確認のためにプロファイルを作成します。



    1. MySQLの同じテーブルを参照するサブクエリを使用したSQLUPDATE

    2. SQL Serverデータベース内のすべての外部キーとチェック制約を返す(T-SQLの例)

    3. `SELECT`を使用して関数を呼び出す

    4. データベースはMySQLとPythonで自動的に更新されません