2010-03-12 3 views
0

Je suis nouveau à la base de données MySQL. J'ai une grande table (ID, ...). Je sélectionne ID souvent avec le code java and.And qui font une lourde charge sur les transactionsComment puis-je optimiser cette transaction mySQL dans le code java?

select from tableName where ID=someID 

notes:

1.Database pourrait être 100.000 dossiers

2.I ne peut pas de résultat de cache

3.ID est une clé primaire 4.J'essaie d'optimiser le temps nécessaire pour renvoyer le résultat de la requête.

Des idées pour l'optimisation?

merci à l'avance

+0

@worldpython: Je pense que vous pourriez avoir besoin d'être un peu plus précis, si vous attendez de bonnes réponses. Par exemple. Quelle est la taille est grande, ID est une clé primaire, pouvez-vous mettre en cache les résultats, qu'est-ce que vous essayez d'optimiser (latence, la requête elle-même), etc? –

+0

Et bien sûr, comment la table est-elle indexée ... – extraneon

+0

Est-ce que ma question est claire maintenant? merci – mebada

Répondre

1

Si vous modifiez la requête d'utiliser un paramètre, il pourrait être un peu plus efficace. Le serveur n'aurait pas besoin d'analyser et de sémantique vérifier l'instruction à chaque fois.

select * from tableName where ID = @someID 

Affectez ensuite la valeur du paramètre pour chaque exécution. Here is an explanation d'utiliser des instructions préparées.

+0

vous signifie sélectionnez à partir de tableName où ID = someID && plus d'expression logique ?? merci – mebada

+0

@worldpython: Non. Changez-le pour qu'il s'agisse d'une requête paramétrée. Peut-être que vous le faites déjà, mais votre exemple indique que vous ne l'êtes pas. –

2

Je ne vois pas le besoin d'optimiser. C'est une requête simple par rapport à une très petite table en termes de base de données et l'item dans la clause where est un PK et donc indexé. Cela devrait fonctionner très vite.

+0

Un grand merci pour votre réponse – mebada

Questions connexes