Maison >base de données >tutoriel mysql >Introduction à quelques différences entre Mysql et Oracle

Introduction à quelques différences entre Mysql et Oracle

王林
王林original
2019-08-15 13:45:392090parcourir

Avant-propos : Dans le travail quotidien des programmeurs, il est inévitable de traiter avec des bases de données. Il existe de nombreuses bases de données que nous connaissons, telles que : mysql, oracle, sql server, etc.

Aujourd'hui, je vais vous présenter. vous Quelques différences simples entre MySQL et Oracle. (Recommandation : Tutoriel vidéo MySQL)

1 Soumission des transactions

MySQL valide les transactions par défaut, et il doit le faire. be <code><strong>START TRANSACTION</strong>START TRANSACTION
marque le début d'une transaction, sinon les données ne peuvent pas être annulées à l'aide du rollback.

<strong>commit</strong>Oracle demande aux utilisateurs de soumettre manuellement. Ils doivent écrire la commande <strong>commit</strong>commit
ou cliquer sur

commit

bouton.

2. Requête de pagination

MySQL peut utiliser directement le langage SQL suivant pour interroger, et la pagination peut être implémentée avec une limite. Parmi les deux paramètres après

select ... from ... where ... limit x,y
<strong>ROWNUM</strong>limite, x représente l'index de départ, à partir de 0, et y représente le nombre d'enregistrements renvoyés. <strong>ROWNUM</strong><strong>ROWNUM</strong>Mais Oracle doit utiliser des pseudo-colonnes

ROWNUM

et des requêtes imbriquées. <strong>ROWNUM</strong> représente le numéro de ligne d'un enregistrement. Il est à noter qu'il est attribué après l'acquisition d'une ligne. Par conséquent, il est impossible d'obtenir des données de pagination en spécifiant l'intervalle <strong>ROWNUM</strong> dans un langage de requête de premier niveau, et une autre requête est requise.

3

<strong>read </strong>, commitedNiveau d'isolation des transactions<strong>repeatable</strong>
Le niveau d'isolation par défaut de MySQL est

lire

, le niveau d'isolement par défaut d'Oracle est <p>répétable<code>innodb

. Dans le même temps, les deux prennent en charge le niveau d’isolation des transactions sérialisées sérialisables pour atteindre le plus haut niveau de cohérence de lecture.

4. Prise en charge des transactions

MySQL ne peut prendre en charge que les transactions avec le verrouillage au niveau de la ligne du moteur de stockage
, mais Oracle ne le prend pas en charge. transactions.

5. Enregistrer la persistance des données

sessionMySQL perdra les données lorsque la base de données est mise à jour ou redémarrée. Oracle écrit la ligne d'opération SQL soumise en ligne. est enregistré sur le disque et peut être restauré à tout moment.

InnoDB6. Concurrence

MySQL utilise principalement des verrous au niveau de la table, et la granularité du verrouillage des ressources est très grande si une session verrouille une table pour un. longtemps Si c'est trop long, les autres

ne pourront pas modifier les données de ce tableau.

Bien que

les tables du moteur puissent utiliser des verrous au niveau des lignes, ce mécanisme de verrouillage au niveau des lignes dépend de l'index de la table si la table n'a pas d'index ou si l'instruction SQL en a. Si vous n'avez pas d'index, la table est toujours utilisée avec le verrouillage de niveau.

dml
Oracle utilise le verrouillage au niveau des lignes, qui verrouille les ressources avec une granularité beaucoup plus petite. Il verrouille uniquement les ressources requises, et le verrouillage s'effectue sur les lignes de données de la base de données et ne repose pas sur des index. La prise en charge de la concurrence par Oracle est donc bien meilleure.

7. Sauvegarde logique

MySQL doit verrouiller les données lors de la sauvegarde logique pour garantir la cohérence des données sauvegardées, ce qui affecte l'utilisation normale de l'entreprise
, les données Oracle ne sont pas verrouillées lors de la sauvegarde logique et les données sauvegardées sont cohérentes.

<strong>dataguard</strong>

8. Réplication

La configuration du serveur de réplication MySQL est très simple, mais lorsqu'il y a un problème avec la base de données principale, la base de données du cluster peut perdre certaines données. et doit être commuté manuellement à partir de la bibliothèque Cong.


Oracle propose à la fois la réplication de données traditionnelle en mode push ou pull et le mécanisme de reprise après sinistre sur deux ou plusieurs machines de

dataguard

, en cas de problème. problème avec la base de données principale , vous pouvez basculer automatiquement la base de données de secours vers la base de données principale, mais la gestion des données est plus compliquée.

9. Jugement des performances

MySQL dispose de peu de méthodes de diagnostic et de réglage, principalement des journaux de requêtes lents.

Oracle dispose d'une variété d'outils avancés de diagnostic et de réglage des performances qui peuvent réaliser de nombreuses analyses automatiques.

10. Autorisations et sécurité

Les utilisateurs MySQL sont liés à l'hôte, et l'hôte et l'adresse IP sont facilement contrefaits.


Les autorisations et les concepts de sécurité d'Oracle sont relativement traditionnels.

11. Table partitionnée et index partitionné

La table partitionnée de MySQL n'est pas mature et stable.

Les fonctions de table de partition et d'index de partition d'Oracle sont très matures et peuvent améliorer l'expérience de l'utilisateur en matière d'accès à la base de données.

12. Outils de gestion

MySQL dispose de moins d'outils de gestion En parallèle, l'installation d'outils de gestion sous Linux nécessite parfois l'installation de packages supplémentaires, ce qui est. plus compliqué.


Oracle dispose de nombreuses lignes de commande matures, d'interfaces graphiques, d'outils de gestion Web et de nombreux outils de gestion tiers, qui sont relativement efficaces et pratiques. Enfin : MySQL est une base de données légère et gratuite, sans service de restauration des données. Oracle est une base de données de poids, il y a des frais, la société Oracle propose des services pour la base de données Oracle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn