23
回答
web应用服务器优化问题讨教
注册华为云得mate10,2.9折抢先购!>>>   

首先,陈述下我之前的问题

我现在也在做优化,但是总是优化不好,由于是初次做所以希望红薯老大多给点建议和帮助,膜拜。

服务器配置 dell poweredge r410 8G 的内存

软件 apache+weblogic9.2 +mysql

每天在线1万左右

weblogic9.2是集群的,但是mysql 运行一段时间就报内存不够

而且3个weblogic9.2 我设置的最大内存1G运行一段时间后weblogic9.2所在内存远远超过而且不自动垃圾回收。这是怎么回事啊。

根据红薯大哥的回复,问题回转到数据库的索引上,现在问题是,因为我是接手一个已经开发完的项目,之前考虑是mysql的问题,想移植平台,却发现,在分页上和BLOB字段上和mysql结合太紧了,要改数据库花费时间太大,所以放弃。

用了weblogic9.2+mysql 后因为服务器是8G的之前是16G的服务器,当内存占用率达到87%的时候mysql 就开始包内存不足的问题,同时mysql所占内存也在1.6左右了。所以每天大于分时段出现这个问题,而这个问题大多数也是在访问量集中的时候出现的。

 综合分析可能是因为数据库设计表的时候对资讯设计是采用BLOB存网页的方式,但是没有用到索引,而数据查询都是先排序后在查性能影响很大。我加上时间的限制后就是读6天以内的数据,性能有所缓解,但是对mysql就会出现内存不够的问题。

现在考虑创建索引,疑问是 在表和数据已经建好的情况下,是否可以在建索引,而不对数据和表结构产生影响,

程序读取数据方面影响有多大。

举报
缘梦
发帖于8年前 23回/1K+阅
共有23个答案 最后回答: 8年前

你应该把读资讯的SQL语句拿出来,在工具里用 EXPLAIN 看看是否用到了索引(建议 Navicat for MySQL

1. 如果没有索引,建上,这对应用程序没有任何影响,立竿见影
2. 另外可加大 MySQL 的内存配置

另外你可以把SQL贴出来,这样可知道需要建什么样的索引。

select a.info_id,a.info_title,b.info_sort_name
from mt_info a ,mt_info_sort b where a.info_sort_code = b.info_sort_code
order by a.oper_time desc limit 10
-----

在mysql 查询这条sql ,相应居然是214S

引用来自#4楼“缘梦”的帖子

select a.info_id,a.info_title,b.info_sort_name
from mt_info a ,mt_info_sort b where a.info_sort_code = b.info_sort_code
order by a.oper_time desc limit 10
-----

在mysql 查询这条sql ,相应居然是214S

你要试试 EXPLAIN 这条 SQL 语句看看是什么结果。

另外检查一下 a 表的 info_sort_code 和 b 表的 info_sort_code 以及 a 表的 oper_time 是否已经建了索引。

引用来自#6楼“缘梦”的帖子

show index from a 和b

上面都建了索引的

就是BLOB字段没有建立索引

最重要的是:

你要试试 EXPLAIN 这条 SQL 语句看看是什么结果。

结果是返回 两列,这里没法贴图

就只有把表下

select_type |table|type|possbile_keys |key_len| ref | rows

simple | b | all | INFO_SORT_CODE |null |   null   | 26

simple |a|ref   | INFO_SORT_CODE |183  |  b.INFO_SORT_CODE | 3300<[if gte mso 9]> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <[endif]><[if gte mso 9]> <[endif]> <!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"\@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} --> <[if gte mso 10]> < /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} > <[endif]>

explain select a.info_id,a.info_title,b.info_sort_name

from mt_info a ,mt_info_sort b where a.info_sort_code = b.info_sort_code

 

order by a.oper_time desc limit 10

<[if gte mso 9]> Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <[endif]><[if gte mso 9]> <[endif]> <!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"\@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} --> <[if gte mso 10]> < /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} > <[endif]>

explain select a.info_id,a.info_title,b.info_sort_name

from mt_info a ,mt_info_sort b where a.info_sort_code = b.info_sort_code

 

order by a.oper_time desc limit 10

----------------------------------------

以上是bug哦

用  I 居然会出现这个问题

----------------------+------+---------------------------------+
| id | select_type | table | type | possible_keys  | key            | key_len |
ref                   | rows | Extra                           |
+----+-------------+-------+------+----------------+----------------+---------+-
----------------------+------+---------------------------------+
|  1 | SIMPLE      | b     | ALL  | INFO_SORT_CODE | NULL           | NULL    |
NULL                  |   26 | Using temporary; Using filesort |
|  1 | SIMPLE      | a     | ref  | INFO_SORT_CODE | INFO_SORT_CODE | 183     |
ccmn.b.INFO_SORT_CODE | 3399 | Using where                     |
+----+-------------+-------+------+----------------+----------------+---------+-
----------------------+------+---------------------------------+

 

结果是返回 两列,这里没法贴图

就只有把表下

select_type |table|type|possbile_keys |key_len| ref | rows

simple | b | all | INFO_SORT_CODE |null |   null   | 26

simple |a|ref   | INFO_SORT_CODE |183  |  b.INFO_SORT_CODE | 3300

用  I 居然会出现这个问题

----------------------+------+---------------------------------+
| id | select_type | table | type | possible_keys  | key            | key_len |
ref                   | rows | Extra                           |
+----+-------------+-------+------+----------------+----------------+---------+-
----------------------+------+---------------------------------+
|  1 | SIMPLE      | b     | ALL  | INFO_SORT_CODE | NULL           | NULL    |
NULL                  |   26 | Using temporary; Using filesort |
|  1 | SIMPLE      | a     | ref  | INFO_SORT_CODE | INFO_SORT_CODE | 183     |
ccmn.b.INFO_SORT_CODE | 3399 | Using where                     |
+----+-------------+-------+------+----------------+----------------+---------+-
----------------------+------+---------------------------------+

上面那个贴子就不删了,红薯大哥你看是不是你网站的问题,这边重贴一次

顶部