Maison base de données tutoriel mysql 10条技巧优化数据库速度

10条技巧优化数据库速度

Dec 15, 2016 pm 03:51 PM
数据库优化

10条技巧优化数据库速度

  大多数网站的内容都存在数据库里,用户通过请求来访问内容。数据库非常的快,有许多技巧能让你优化数据库的速度,使你不浪费服务器的资源。在这篇文章中,我收录了十个优化数据库速度的技巧。

  1、小心设计数据库

  第一个技巧也许看来理所当然,但事实上大部分数据库的问题都来自于设计不好的数据库结构。

  譬如我曾经遇见过将客户端信息和支付信息储存在同一个数据库列中的例子。对于系统和用数据库的开发者来说,这很糟糕。

  新建数据库时,应当将信息储存在不同的表里,采用标准的命名方式,并采用主键。

  来源: http://www.simple-talk.com/sql/database-administration/ten-common-database-design-mistakes/

  2、清楚你需要优化的地方

  如果你想优化某个查询语句,清楚的知道这个语句的结果是非常有帮助的。采用EXPLAIN语句,你将获得很多有用的信息,下面来看个例子:

     EXPLAIN SELECT * FROM ref_table,other_table WHERE ref_table.key_column=other_table.column;

  来源: http://dev.MySQL.com/doc/refman/5.0/en/using-explain.html

  3、最快的查询语句…是那些你没发送的语句

  每次你向数据库发送一条语句,你都会用掉很多服务器资源。所以在很高流量的网站中,最好的方法是将你的查询语句缓存起来。

  有许多种缓存语句的方法,下面列出了几个:

   AdoDB: AdoDB是一个php的数据库简化库。使用它,你可以选用不同的数据库系统(MySQL, PostGreSQL, Interbase等等),而且它就是为了速度而设计的。AdoDB提供了简单但强大的缓存系统。还有,AdoDB拥有BSD许可,你可以在你的项目中免费使用它。对于商业化的项目,它也有LGPL许可。

   Memcached:Memcached是一种分布式内存缓存系统,它可以减轻数据库的负载,来加速基于动态数据库的网站。

   CSQL Cache: CSQL缓存是一个开源的数据缓存架构。我没有试过它,但它看起来非常的棒。

  4、不要select你不需要的

  获取想要的数据,一种非常常见的方式就是采用*字符,这会列出所有的列。

     SELECT * FROM wp_posts;

  然而,你应该仅列出你需要的列,如下所示。如果在一个非常小型的网站,譬如,一分钟一个用户访问,可能没有什么分别。然而如果像Cats Who Code这样大流量的网站,这就为数据库省了很多事。

     SELECT title, excerpt, author FROM wp_posts;

  5、采用LIMIT

  仅获得某个特定行数的数据是非常常见的。譬如博客每页只显示十篇文章。这时,你应该使用LIMIT,来限定你想选定的数据的行数。

  如果没有LIMIT,表有100,000行数据,你将会遍历所有的行数,这对于服务器来说是不必要的负担。

     SELECT title, excerpt, author FROM wp_posts LIMIT 10;

  6、避免循环中的查询

  当在PHP中使用SQL时,可以将SQL放在循环语句中。但这么做给你的数据库增加了负担。

  下面的例子说明了“在循环语句中嵌套查询语句”的问题:

     foreach ($display_order as $id => $ordinal){               $sql = "UPDATE categories SET display_order = $ordinal WHERE id = $id";          mysql_query($sql);       }

  你可以这么做:

     UPDATE categories         SET display_order = CASE id              WHEN 1 THEN 3             WHEN 2 THEN 4             WHEN 3 THEN 5          END WHERE id IN (1,2,3)

  来源: http://www.karlrixon.co.uk/articles/sql/update-multiple-rows-with-different-values-and-a-single-sql-query/

  7、采用join来替换子查询

  程序员可能会喜欢用子查询,甚至滥用。下面的子查询非常有用:

     SELECT a.id,            (SELECT MAX(created)             FROM posts             WHERE author_id = a.id)       AS latest_post FROM authors a

  虽然子查询很有用,但join语句可以替换它,join语句执行起来更快。

     SELECT a.id, MAX(p.created) AS latest_post      FROM authors a      INNER JOIN posts p         ON (a.id = p.author_id)      GROUP BY a.id

  来源: http://20bits.com/articles/10-tips-for-optimizing-mysql-queries-that-dont-suck/

  8、小心使用通配符

  通配符非常好用,在搜索数据的时候可以用通配符来代替一个或多个字符。我不是说不能用,而是,应该小心使用,并且不要使用全词通配符(full wildcard),前缀通配符或后置通配符可以完成相同的任务。

  事实上,在百万数量级的数据上采用全词通配符来搜索会让你的数据库当机。

     #Full wildcard       SELECT * FROM TABLE WHERE COLUMN LIKE '%hello%';       #Postfix wildcard       SELECT * FROM TABLE WHERE COLUMN LIKE  'hello%';       #PRefix wildcard       SELECT * FROM TABLE WHERE COLUMN LIKE  '%hello';

  来源: http://hungred.com/useful-information/ways-optimize-sql-queries/

  9、采用UNION来代替OR

  下面的例子采用OR语句来:

     SELECT * FROM a, b WHERE a.p = b.q or a.x = b.y;

  UNION语句,你可以将2个或更多select语句的结果拼在一起。下面的例子返回的结果同上面的一样,但是速度要快些:

      SELECT * FROM a, b WHERE a.p = b.q        UNION        SELECT * FROM a, b WHERE a.x = b.y

  来源: http://www.bcarter.com/optimsql.htm

  10、使用索引

  数据库索引和你在图书馆中见到的索引类似:能让你更快速的获取想要的信息,正如图书馆中的索引能让读者更快的找到想要的书一样。

  可以在一个列上创建索引,也可以在多个列上创建。索引是一种数据结构,它将表中的一列或多列的值以特定的顺序组织起来。

  下面的语句在Product表的Model列上创建索引。这个索引的名字叫作idxModel

      CREATE INDEX idxModel ON Product (Model);

以上就是10条技巧优化数据库速度的内容,更多相关文章请关注PHP中文网(www.php.cn)!


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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Comment Hibernate optimise-t-il les performances des requêtes de base de données ? Comment Hibernate optimise-t-il les performances des requêtes de base de données ? Apr 17, 2024 pm 03:00 PM

Les conseils pour optimiser les performances des requêtes Hibernate incluent : l'utilisation du chargement différé pour différer le chargement des collections et des objets associés ; l'utilisation du traitement par lots pour combiner les opérations de mise à jour, de suppression ou d'insertion ; l'utilisation du cache de deuxième niveau pour stocker les objets fréquemment interrogés en mémoire à l'aide de connexions externes HQL ; , récupérer les entités et leurs entités associées ; optimiser les paramètres de requête pour éviter le mode de requête SELECTN+1 ; utiliser des curseurs pour récupérer des données massives en blocs ; utiliser des index pour améliorer les performances de requêtes spécifiques.

Comment améliorer la vitesse d'accès du site Web Python grâce à l'optimisation de la base de données ? Comment améliorer la vitesse d'accès du site Web Python grâce à l'optimisation de la base de données ? Aug 07, 2023 am 11:29 AM

Comment améliorer la vitesse d'accès du site Web Python grâce à l'optimisation de la base de données ? Résumé Lors de la création d'un site Web Python, une base de données est un composant essentiel. Si la vitesse d’accès à la base de données est lente, cela affectera directement les performances et l’expérience utilisateur du site Web. Cet article abordera certaines façons d'optimiser votre base de données pour améliorer la vitesse d'accès de votre site Web Python, ainsi que quelques exemples de code. Introduction Pour la plupart des sites Web Python, la base de données est un élément clé du stockage et de la récupération des données. Si elle n’est pas optimisée, la base de données peut devenir un goulot d’étranglement en termes de performances. Livre

Conseils d'optimisation des performances Spring Boot : créez des applications aussi vite que le vent Conseils d'optimisation des performances Spring Boot : créez des applications aussi vite que le vent Feb 25, 2024 pm 01:01 PM

SpringBoot est un framework Java populaire connu pour sa facilité d'utilisation et son développement rapide. Cependant, à mesure que la complexité de l’application augmente, les problèmes de performances peuvent devenir un goulot d’étranglement. Afin de vous aider à créer une application springBoot aussi rapide que le vent, cet article partagera quelques conseils pratiques d'optimisation des performances. Optimiser le temps de démarrage Le temps de démarrage des applications est l'un des facteurs clés de l'expérience utilisateur. SpringBoot propose plusieurs façons d'optimiser le temps de démarrage, telles que l'utilisation de la mise en cache, la réduction de la sortie des journaux et l'optimisation de l'analyse du chemin de classe. Vous pouvez le faire en définissant spring.main.lazy-initialization dans le fichier application.properties

Comment améliorer les performances de MySQL en utilisant des index composites Comment améliorer les performances de MySQL en utilisant des index composites May 11, 2023 am 11:10 AM

Dans la base de données MySQL, l'indexation est un moyen très important d'optimisation des performances. Lorsque la quantité de données dans la table augmente, des index inappropriés peuvent ralentir les requêtes ou même provoquer des pannes de base de données. Afin d'améliorer les performances des bases de données, les index doivent être utilisés de manière rationnelle lors de la conception des structures de tables et des instructions de requête. L'index composite est une technologie d'indexation plus avancée qui améliore l'efficacité des requêtes en combinant plusieurs champs sous forme d'index. Dans cet article, nous détaillerons comment améliorer les performances de MySQL en utilisant des index composites. Qu'est-ce que l'indice composite

Optimisation des performances de Java Spring Boot Security : faites voler votre système Optimisation des performances de Java Spring Boot Security : faites voler votre système Feb 19, 2024 pm 05:27 PM

1. Optimisation du code pour éviter d'utiliser trop d'annotations de sécurité : Dans Controller et Service, essayez de réduire l'utilisation de @PreAuthorize et @PostAuthorize et d'autres annotations. Ces annotations augmenteront le temps d'exécution du code. Optimiser les instructions de requête : lors de l'utilisation de springDataJPA, l'optimisation des instructions de requête peut réduire le temps d'interrogation de la base de données, améliorant ainsi les performances du système. Mise en cache des informations de sécurité : la mise en cache de certaines informations de sécurité couramment utilisées peut réduire le nombre d'accès à la base de données et améliorer la vitesse de réponse du système. 2. Utilisez des index pour l'optimisation de la base de données : la création d'index sur des tables fréquemment interrogées peut améliorer considérablement la vitesse de requête de la base de données. Nettoyer régulièrement les journaux et les tables temporaires : nettoyer régulièrement les journaux et les tables temporaires

D'un point de vue technique, pourquoi Oracle peut-il battre MySQL ? D'un point de vue technique, pourquoi Oracle peut-il battre MySQL ? Sep 08, 2023 pm 04:15 PM

D'un point de vue technique, pourquoi Oracle peut-il battre MySQL ? Ces dernières années, les systèmes de gestion de bases de données (SGBD) ont joué un rôle essentiel dans le stockage et le traitement des données. Oracle et MySQL, deux SGBD populaires, ont toujours attiré beaucoup d'attention. Cependant, d'un point de vue technique, Oracle est plus puissant que MySQL à certains égards, donc Oracle est capable de vaincre MySQL. Premièrement, Oracle excelle dans le traitement de données à grande échelle. Oracle

Problèmes de base de données courants dans les systèmes Linux et leurs solutions Problèmes de base de données courants dans les systèmes Linux et leurs solutions Jun 18, 2023 pm 03:36 PM

Avec le développement continu de la technologie informatique et la croissance continue de l’échelle des données, les bases de données sont devenues une technologie vitale. Cependant, certains problèmes courants sont rencontrés lors de l'utilisation de bases de données sur les systèmes Linux. Cet article présente certains problèmes courants de bases de données sur les systèmes Linux et leurs solutions. Problèmes de connexion à la base de données Lors de l'utilisation d'une base de données, des problèmes tels qu'un échec de connexion ou un délai de connexion surviennent parfois. Ces problèmes peuvent être causés par des erreurs de configuration de la base de données ou des droits d'accès insuffisants. Solution : Vérifiez le fichier de configuration de la base de données pour vous assurer

Comment optimiser les requêtes de base de données pour les plugins WordPress personnalisés Comment optimiser les requêtes de base de données pour les plugins WordPress personnalisés Sep 06, 2023 am 09:22 AM

Comment optimiser les requêtes de base de données pour les plugins WordPress personnalisés Résumé : Pour les développeurs développant des plugins personnalisés à l'aide de WordPress, il est crucial de comprendre comment optimiser les requêtes de base de données. Cet article présentera quelques techniques d'optimisation pour aider les développeurs à améliorer les performances des plug-ins personnalisés. Introduction : À mesure que les sites WordPress se développent et que le trafic augmente, les performances des requêtes de base de données deviennent de plus en plus critiques. L'optimisation des requêtes de base de données peut améliorer considérablement la vitesse et le temps de réponse de votre site Web, offrant ainsi une meilleure expérience utilisateur. Cet article

See all articles