SOQLとの使い分け
- SOSL が最も役に立つのは、データがどの項目やオブジェクトに存在しているかが正確にわかっておらず、複数のオブジェクトにわたって検索する必要がある場合
- SOQL は関連オブジェクトにのみ使用できる
例
FIND {jos*} IN ALL FIELDS RETURNING Account(Name), Contact(LastName, FirstName), ContentVersion(Title)
SOQL効率的なクエリ
- 開発者コンソール → Help → Preference → Enable Query Plan
- 上記を行なうと、Query EditorからQuery Planが確認できる
- 実行するSOQLが
TableScan
になってしまうと効率が悪い
TableScanになる悪い例
SELECT Id, Name FROM Account WHERE Custom_Field__c = null
SELECT CaseNumber FROM Case WHERE Status != ‘New’
SELECT Id, LastName, FirstName FROM Contact WHERE LastName LIKE ‘%smi%’
SELECT AccountId, Amount FROM Opportunity WHERE Order_Number__c > 10
Indexになる良い例
SELECT Id, CaseNumber FROM Case WHERE IsClosed = true