これは簡単な質問ですが、テーブルの更新手順を作成する場合、たとえば Personinfo はこれで問題ありません
Update Person
Set
FirstName = IFNULL(_FirstName, FirstName),
LastName = IFNULL(_LastName, LastName)
Where PID = _PID
これは、レコードの部分的な更新を行うのにまったくお勧めですか、それとも関係なくすべての情報を送り返す必要がありますか?
exp1がnullでない場合、IFNULLはexp2を返します。
ストアドプロシージャに渡したパラメータが設定されていない場合は、「名」と「名」の固定文字列を返したいと思います。パフォーマンスから、更新/選択の速度とデータの断片化に関しても話していると思います。
アプリケーション上の理由で、パフォーマンスを心配するのではなく、NULLまたは固定文字列のどちらが必要かを自問する必要があります(これに関連するパフォーマンスの問題がすでに発生している場合を除く)。
これはパフォーマンスに影響を与える可能性があることは事実ですが、行サイズが制限を超えた場合にのみ問題が発生し始めるはずです。テーブルの内部表現の最大行サイズは65,535バイトです。それを超えないのであれば、固定文字列とNULLのパフォーマンスの違いについて考える価値はありません。
CHAR型を選択することもできます。これは、常に同じ長さであり、断片化を引き起こすことはないためです。ただし、NULLではなく空の値を格納する必要があります。