返回顶部
首页 > 资讯 > 数据库 >让数据库变更快的建议分别是哪些
  • 108
分享到

让数据库变更快的建议分别是哪些

2024-04-02 19:04:59 108人浏览 薄情痞子
摘要

让数据库变更快的建议分别是哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。大多数网站的内容都存在数据库里,用户通过请求来访问内容。数据库非常

数据库变更快的建议分别是哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

让数据库变更快的建议分别是哪些

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

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);

看完上述内容,你们掌握让数据库变更快的建议分别是哪些的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网数据库频道,感谢各位的阅读!

您可能感兴趣的文档:

--结束END--

本文标题: 让数据库变更快的建议分别是哪些

本文链接: https://lsjlt.com/news/67288.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 让数据库变更快的建议分别是哪些
    让数据库变更快的建议分别是哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。大多数网站的内容都存在数据库里,用户通过请求来访问内容。数据库非常...
    99+
    2024-04-02
  • 关于数据库备份恢复方面的15个建议分别是哪些
    关于数据库备份恢复方面的15个建议分别是哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 概述数据是一个互联网公司的命脉,数据...
    99+
    2024-04-02
  • 数据库优化妙招:让您的数据更快更可靠!
    1. 数据库设计 数据库设计是数据库优化的基础。一个合理的设计可以大大提高数据库的性能和可靠性。在设计数据库时,应注意以下几点: 选择合适的数据库类型。根据不同的需求,可以选择不同的数据库类型,如关系型数据库、NoSQL数据库等。 确...
    99+
    2024-02-07
    数据库优化 索引 查询优化 数据库维护
  • 数据库连接池的魔力:让数据库访问更快更稳定!
    数据库连接池、性能、稳定性、连接管理 在现代应用程序中,数据库连接是必不可少的。然而,建立和释放数据库连接是一个耗时的过程,会导致应用程序性能下降,尤其是高并发情况下。数据库连接池应运而生,它通过以下方式解决了这一难题: 连接重用: ...
    99+
    2024-03-03
    数据库连接池是一种强大的工具 它通过管理和重用现有的数据库连接来提高性能和稳定性。本文将探讨连接池的魔力 并提供代码示例来说明如何在您的应用程序中使用它。
  • MySQL 性能优化,让数据库跑的更快
    在数据库优化工作中,使数据尽可能的小,使表在硬盘上占据的空间尽可能的小,这是最常用、也是最有效的手段之一。因为缩小数据,相对来说可以提高硬盘的读写速度,并且在查询过程中小表的内容处理时所占用的系统资源比较...
    99+
    2022-05-17
    数据库 MySQL
  • 书写高质量SQL的30条建议分别是哪些
    书写高质量SQL的30条建议分别是哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。前言小编将结合实例demo,阐述30条有关于优化SQL的建...
    99+
    2024-04-02
  • 关于MySQL数据库配置优化的15条建议分别是什么
    今天就跟大家聊聊有关关于MySQL数据库配置优化的15条建议分别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。概述今天主要分享一下关于mysq...
    99+
    2024-04-02
  • 让C程序更高效的10种方法分别是哪些
    让C程序更高效的10种方法分别是哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码之美,不仅在于为一个给定问题找到解决方案,而且还在代码的简单性、有效性、紧...
    99+
    2023-06-17
  • 索引:如何让你的数据库查询更快更准确?
    在数据库中,我们经常需要查询数据以满足我们的业务需求。但是,当我们的数据量变得非常大时,查询可能会变得非常缓慢。这时候,索引就派上用场了。在本文中,我们将讨论索引的基本概念、如何创建索引以及如何使用索引来提高查询性能。 什么是索引? 在数...
    99+
    2023-06-09
    异步编程 自然语言处理 索引
  • 分布式环境下,NumPy有哪些性能优势?让你的数据处理更快更准!
    NumPy是Python中一个重要的科学计算库,可以用于高效的数组计算、线性代数计算、随机数生成等任务。在分布式环境下,NumPy也有许多性能优势,让你的数据处理更快更准。 并行计算 在分布式环境下,NumPy可以利用多核CPU并行计...
    99+
    2023-09-10
    numy 分布式 javascript
  • 让Python代码更易维护的七种武器分别是哪些
    这期内容当中小编将会给大家带来有关让Python代码更易维护的七种武器分别是哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。随着软件项目进入“维护模式”,对可读性和编码标准的要求很容易落空(甚至从一开始...
    99+
    2023-06-17
  • Java代码编写的30条建议分别有哪些
    Java代码编写的30条建议分别有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包...
    99+
    2023-06-17
  • Oracle数据库隐含参数使用的五个原则和四个建议分别是什么
    这期内容当中小编将会给大家带来有关Oracle数据库隐含参数使用的五个原则和四个建议分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。隐含参数是数据库参数名中前缀为...
    99+
    2024-04-02
  • 揭秘数据库性能调优的秘密:让你的数据库存储速度更快
    数据库性能调优是一个复杂且具有挑战性的任务,需要对数据库系统有深入的了解和丰富的经验。然而,通过遵循一些基本原则和最佳实践,可以显著提高数据库的性能。 1. 索引优化 索引是数据库中用于加速数据检索的一种数据结构。通过在表中创建索引,可...
    99+
    2024-02-13
    数据库性能调优 数据库优化 MySQL优化 SQL优化 NoSQL优化
  • 云数据库和自建数据库的区别是什么
    本篇内容主要讲解“云数据库和自建数据库的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“云数据库和自建数据库的区别是什么”吧!云数据库是指部署在云端的数...
    99+
    2024-04-02
  • oracle rac和分布式数据库的区别有哪些
    这篇文章主要介绍oracle rac和分布式数据库的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.分布式数据库是多个数据库,而rac只是一个库多个实例;2.rac事务上...
    99+
    2024-04-02
  • 10个在或Linux终端上快速工作的建议分别是什么
    这期内容当中小编将会给大家带来有关10个在或Linux终端上快速工作的建议分别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。你有没有惊讶地看到有人在Unix/Linux中工作得非常快,噼里啪啦的敲键...
    99+
    2023-06-05
  • 数据库的分表分库算法有哪些
    这篇文章主要讲解了“数据库的分表分库算法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库的分表分库算法有哪些”吧!以下是几种常见的分表算法。1.按...
    99+
    2024-04-02
  • 9个出色的JavaScript库分别是哪些
    本篇文章为大家展示了9个出色的JavaScript库分别是哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。JavaScript 从诞生伊始就在不断进化。毫无疑问,...
    99+
    2024-04-02
  • 12个优秀的JavaScript库分别是哪些
    本篇文章为大家展示了12个优秀的JavaScript库分别是哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。JavaScript有很多库,每个人有自己最喜欢、认为...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作