Maison base de données tutoriel mysql 127168420条记录的SQL2005数据库性能测试,程序人生的一次飞跃(上亿条记录的查询测试、查询优化)

127168420条记录的SQL2005数据库性能测试,程序人生的一次飞跃(上亿条记录的查询测试、查询优化)

Jun 07, 2016 pm 05:39 PM
性能 数据库 记录

SELECT COUNT(1) FROM TXSJL 耗费一分钟多,创建所引耗费 1小时50分钟左右。 这么海量的数据,平生还是第一次折腾,虽然几年前在宁波海关的数据中心也见过上亿条的数据,但是没自己操作过。 为了产生上亿条的数据,折腾了整整1天时间,产生均匀分布的演示数

    SELECT COUNT(1) FROM TXSJL 耗费一分钟多,创建所引耗费 1小时50分钟左右。

    这么海量的数据,平生还是第一次折腾,免备案空间,虽然几年前在宁波海关的数据中心也见过上亿条的数据,但是没自己操作过。

 

    为了产生上亿条的数据,香港服务器,折腾了整整1天时间,产生均匀分布的演示数据,每次执行一个SQL语句大该花费20分钟左右同时能产生200万条记录,连续产生了接近5-6次,有了2000万条演示数据,这些整整耗费了一上午。

 

    中午去打台球,为了提高演示数据的速度,把表的索引先干掉否则产生演示数据太慢,干掉索引大概花费了20分钟左右,然后每次1000万条的演示数据插入,每次大概耗费20分钟,中午打好台球回来产生了2批次数据,然后数据库连接超时,下午又批量生成了7-8次,接近到4点左右产生了1亿多条演示数据。

 

    接着发现服务器的硬盘空间要满了,没办法再产生演示数据了,先停止插入演示数据,重新整理数据库空间等,网站空间,腾出一些地方再继续产生索引,索引创建大概耗时1小时50分钟,下班时已经产生好演示数据及相关的优化索引等,准备就绪。

 

   由于程序先前在1千多万条记录上优化过,到了1亿多条数据后,居然性能下降不明显,运行速度照样还是蛮快的开心啊,同时也佩服数据库的强大,真TMD的是有科技含量啊,1亿多条数据居然运算的还是很快,应该是其中的所引起了很大作用。

 

   我经常形容自己一年死3回,升华3次,今天算其中的一次吧,算是今年真正升华了一次,平生第一次亲手折腾上亿条数据的表,做优化工作;虽然算不上专业的DBA,但非专业的DBA也难超越我了,哈哈。偷偷高兴一下,给自己鼓鼓劲儿。

 

   其实亲身能体验一下上亿条数据,程序运行会怎么样?运算速度会怎么样?会遇到什么问题?要注意哪些环节?还是很有价值的。说得俗一些如何快速产生上亿条测试数据也是一门学问,呵呵,而且要分布均匀的哦。

 

   数据文件占40G左右,所引占6G左右空间。

 

 

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comparaison des performances de différents frameworks Java Comparaison des performances de différents frameworks Java Jun 05, 2024 pm 07:14 PM

Comparaison des performances de différents frameworks Java : Traitement des requêtes API REST : Vert.x est le meilleur, avec un taux de requêtes de 2 fois SpringBoot et 3 fois Dropwizard. Requête de base de données : HibernateORM de SpringBoot est meilleur que l'ORM de Vert.x et Dropwizard. Opérations de mise en cache : le client Hazelcast de Vert.x est supérieur aux mécanismes de mise en cache de SpringBoot et Dropwizard. Cadre approprié : choisissez en fonction des exigences de l'application. Vert.x convient aux services Web hautes performances, SpringBoot convient aux applications gourmandes en données et Dropwizard convient à l'architecture de microservices.

iOS 18 ajoute une nouvelle fonction d'album 'Récupéré' pour récupérer les photos perdues ou endommagées iOS 18 ajoute une nouvelle fonction d'album 'Récupéré' pour récupérer les photos perdues ou endommagées Jul 18, 2024 am 05:48 AM

Les dernières versions d'Apple des systèmes iOS18, iPadOS18 et macOS Sequoia ont ajouté une fonctionnalité importante à l'application Photos, conçue pour aider les utilisateurs à récupérer facilement des photos et des vidéos perdues ou endommagées pour diverses raisons. La nouvelle fonctionnalité introduit un album appelé "Récupéré" dans la section Outils de l'application Photos qui apparaîtra automatiquement lorsqu'un utilisateur a des photos ou des vidéos sur son appareil qui ne font pas partie de sa photothèque. L'émergence de l'album « Récupéré » offre une solution aux photos et vidéos perdues en raison d'une corruption de la base de données, d'une application d'appareil photo qui n'enregistre pas correctement dans la photothèque ou d'une application tierce gérant la photothèque. Les utilisateurs n'ont besoin que de quelques étapes simples

Comment optimiser les performances des programmes multi-thread en C++ ? Comment optimiser les performances des programmes multi-thread en C++ ? Jun 05, 2024 pm 02:04 PM

Les techniques efficaces pour optimiser les performances multithread C++ incluent la limitation du nombre de threads pour éviter les conflits de ressources. Utilisez des verrous mutex légers pour réduire les conflits. Optimisez la portée du verrou et minimisez le temps d’attente. Utilisez des structures de données sans verrouillage pour améliorer la simultanéité. Évitez les attentes occupées et informez les threads de la disponibilité des ressources via des événements.

Comment gérer les erreurs de connexion à la base de données en PHP Comment gérer les erreurs de connexion à la base de données en PHP Jun 05, 2024 pm 02:16 PM

Pour gérer les erreurs de connexion à la base de données en PHP, vous pouvez utiliser les étapes suivantes : Utilisez mysqli_connect_errno() pour obtenir le code d'erreur. Utilisez mysqli_connect_error() pour obtenir le message d'erreur. En capturant et en enregistrant ces messages d'erreur, les problèmes de connexion à la base de données peuvent être facilement identifiés et résolus, garantissant ainsi le bon fonctionnement de votre application.

Tutoriel détaillé sur l'établissement d'une connexion à une base de données à l'aide de MySQLi en PHP Tutoriel détaillé sur l'établissement d'une connexion à une base de données à l'aide de MySQLi en PHP Jun 04, 2024 pm 01:42 PM

Comment utiliser MySQLi pour établir une connexion à une base de données en PHP : Inclure l'extension MySQLi (require_once) Créer une fonction de connexion (functionconnect_to_db) Appeler la fonction de connexion ($conn=connect_to_db()) Exécuter une requête ($result=$conn->query()) Fermer connexion ( $conn->close())

Comment utiliser les fonctions de rappel de base de données dans Golang ? Comment utiliser les fonctions de rappel de base de données dans Golang ? Jun 03, 2024 pm 02:20 PM

L'utilisation de la fonction de rappel de base de données dans Golang peut permettre : d'exécuter du code personnalisé une fois l'opération de base de données spécifiée terminée. Ajoutez un comportement personnalisé via des fonctions distinctes sans écrire de code supplémentaire. Des fonctions de rappel sont disponibles pour les opérations d'insertion, de mise à jour, de suppression et de requête. Vous devez utiliser la fonction sql.Exec, sql.QueryRow ou sql.Query pour utiliser la fonction de rappel.

Comparaison des performances du C++ avec d'autres langages Comparaison des performances du C++ avec d'autres langages Jun 01, 2024 pm 10:04 PM

Lors du développement d'applications hautes performances, le C++ surpasse les autres langages, notamment dans les micro-benchmarks. Dans les benchmarks macro, les mécanismes de commodité et d'optimisation d'autres langages tels que Java et C# peuvent mieux fonctionner. Dans des cas pratiques, C++ fonctionne bien dans le traitement d'images, les calculs numériques et le développement de jeux, et son contrôle direct de la gestion de la mémoire et de l'accès au matériel apporte des avantages évidents en termes de performances.

Quelle est la performance des générateurs de nombres aléatoires dans Golang ? Quelle est la performance des générateurs de nombres aléatoires dans Golang ? Jun 01, 2024 pm 09:15 PM

La meilleure façon de générer des nombres aléatoires dans Go dépend du niveau de sécurité requis par votre application. Faible sécurité : utilisez le package math/rand pour générer des nombres pseudo-aléatoires, adaptés à la plupart des applications. Haute sécurité : utilisez le package crypto/rand pour générer des octets aléatoires cryptographiquement sécurisés, adaptés aux applications qui nécessitent un caractère aléatoire plus élevé.

See all articles