J'ai une table qui stocke des informations de photo avec id comme clé primaire:question requête tsql et l'index
id (PK), titre, album_id, posted_by, publié, nom de fichier, les balises, les cotes, date_posted
ce tableau tiendra infor de plus de 100 millions de photos et j'ai besoin pour exécuter cette requête comme celles-ci fréquemment:
1) obtenir toutes les photos (juste id, nom de fichier, les colonnes de titre) d'un album donné
id select, nom, titre à partir de photos où album_id = @AlbumId et publié = 1
2) obtenir toutes les photos publiées d'un utilisateur donné mais excluent les photos actuellement regarder album
select id, nom, titre à partir de photos où posted_by = 'bob' et album_id <> 10 et publié = 1
Je veux éviter l'index et l'analyse de la table. Je dois utiliser chercher (disons 100%) autant que possible.
Est-ce que cela peut être fait? Quel type d'index et sur quelles colonnes m'y aiderais?
Merci
Quelle est la cardinalité de la colonne Publié? (C'est-à-dire, quelles sont les différentes valeurs et combien de chacune d'entre elles pourrait contenir?) –
Idem pour AlbumId et posted_by: pour chaque colonne, combien de valeurs différentes sont probables, et combien de lignes pour une valeur donnée? –
publié est une colonne de type bit: donc soit 1 ou 0 AlbumId: deviendra assez grand disons 10 Millions de 1 à 10M posted_by est varchar (20) donc je peux avoir de très gros utilisateurs – kheya