千家信息网

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

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,让数据库变更快的建议分别是哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。大多数网站的内容都存在数据库里,用户通过请求来访问内容。数据
千家信息网最后更新 2026年10月31日让数据库变更快的建议分别是哪些

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

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

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

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

数据 数据库 语句 查询 索引 通配符 来源 缓存 面的 例子 信息 网站 更快 内容 方法 系统 速度 问题 技巧 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中国互联网科技股 互联网属科技 易互联网科技有限公司 广州凡科互联网科技 上海亿帐通互联网科技 互联网科技素材视频竖屏 开启互联网科技时代小说 博兴的互联网电子科技公司 全球顶尖互联网科技公司 港股科技和互联网 互联网科技公司实习生 深圳互联网科技的发展 互联网科技快讯热点 有人说阿里系是互联网科技企业 互联网科技机房 银川新华互联网科技学校原画 广州三三互联网科技有限公司 现代互联网科技公司 安徽九吞吴互联网科技有限公司 互联网科技创业计划的风险分析 北京路客互联网科技有限公司 智能科技公司是互联网公司吗 深圳天众互联网科技公司 成都仁贤领冠互联网科技有限公司 茂名市互联网科技产业园 互联网在线教育科技创业 黑云互联网科技有限公司 科技和互联网行业的特点 唐山双旺合互联网科技产业园 利用互联网等科技手段
0