汗···
好象是第一次在mysql版发帖子啊······
产品基本成型了,使用的mysql数据库,发觉性能方面存在一些问题······
所以优化是必须做的哈,但是我对mysql还没有达到那么高的境界·········
这几天请教了一些朋友,也上网找了一些关于优化的资料看了·······
但是实际动手去做还是不知道该从何下手:(········
前天看到mysql版的yueliangdao0608都在热心认真的回答网友的问题,而且感觉很厉害的呢····
不过昨天加你为CSDN的好友并发消息给你米得回应-_-# ·····
所以特发此帖向您请教关于mysql优化的问题哈········
其他mysql的高手们也能一起指点偶下吗,感激不尽··········
:P
好象是第一次在mysql版发帖子啊······
产品基本成型了,使用的mysql数据库,发觉性能方面存在一些问题······
所以优化是必须做的哈,但是我对mysql还没有达到那么高的境界·········
这几天请教了一些朋友,也上网找了一些关于优化的资料看了·······
但是实际动手去做还是不知道该从何下手:(········
前天看到mysql版的yueliangdao0608都在热心认真的回答网友的问题,而且感觉很厉害的呢····
不过昨天加你为CSDN的好友并发消息给你米得回应-_-# ·····
所以特发此帖向您请教关于mysql优化的问题哈········
其他mysql的高手们也能一起指点偶下吗,感激不尽··········
:P
恰当的SQL语句、表间关系、主键、外键、约束、触发器等等方面
都会影响MYSQL的运行速度。
哈哈·······
终于有人回复了········感觉优化不是几句话讲得清楚的吧,比如优化MYSQL的配置文件,建表时不要冗余结构,合适的索引、
恰当的SQL语句、表间关系、主键、外键、约束、触发器等等方面
都会影响MYSQL的运行速度。//我知道不是几句话能讲清楚的哦·····
我要做的优化表结构不会改动了(头头说的,不是在表结构上去优化)········
因为之前建的表以及索引等等都还行的······
语句没有复杂的条件语句,就是数据量大·······PS:优化mysql的配置文件怎么优化呢(我自己也找找资料看看)?
再次感谢wwwwa·····
机器配置具体的我不是很清楚,等我问清楚再发上来吧·········
平台是linux的fc6,mysql是5.1.23的·····
在系统跑的整个网络内所有人的上网行为(上网日志)都要入库······
分为酒店版和高校版,酒店版用户还不多,但是一天下来查询一下日志就很慢了,更别说高校几千人了······
底层抓包,然后分析协议,按照协议插入数据到不同的表中,大致就这样········
web端的话是php,没有业务逻辑的,就是显示,查询等······
每天一个表,一年才365张表,在界面上也体现日志的时间段概念·····//这个是否可行,具体该怎么做呢?
一所学校少说也有2000多人········
然后2000多人上网的所有行为包括浏览网页,聊QQ,游戏,下载,发mail等等等等,都会插入数据库·······
字段的话有一个日志总表21个字段,还有其他具体的行为日志表,字段一般是15个左右吧·····
[align=center]==== 思想重于技巧 ====
[/align]
[align=center]==== 思想重于技巧 ====
[/align]
简单点描述一下吧。
1、服务器参数配置方面
见这篇帖子
http://topic.csdn.net/u/20080105/11/f5b189c8-e308-4561-a68f-98b913a0e3b4.html2、SQL语句方面,最最主要的是建立合适的索引。
1)、尽量不要用子查询。
2)、多用内联,不过也得看需求。
3)、尽量少用临时表或者不用。
4)、尽量不要用select * from ..形式。
5)、分页获取结果集。
6)、分表,分库。
7)、...
当然每个小的要点里面包含的东西非常多。多多试验下就知道了。
对于SQL 语句方面,尽量用
explain 来分析你的SQL 语句。
主要是创建视图的SQL 语句的效率。
是的,合适的索引、恰当的SQL语句
//视图是用在php中的······
web那块是另一同事做的········
他写的视图我实在是········
发一个上来看下?
DELIMITER $$DROP VIEW IF EXISTS `customdb`.`BBS_AUDIT_VIEW`$$CREATE ALGORITHM=UNDEFINED DEFINER=`suntang`@`%` SQL SECURITY DEFINER VIEW `BBS_AUDIT_VIEW` AS select `ACCESS_INTERNET_LOG`.`ID` AS `ID`,`ACCESS_INTERNET_LOG`.`CERTIFICATE_CODE` AS `CERTIFICATE_CODE`,`ACCESS_INTERNET_LOG`.`CUSTOM_NAME` AS `CUSTOM_NAME`,`ACCESS_INTERNET_LOG`.`NET_ENDING_NAME` AS `NET_ENDING_NAME`,`ACCESS_INTERNET_LOG`.`NET_ENDING_IP` AS `NET_ENDING_IP`,`ACCESS_INTERNET_LOG`.`NET_ENDING_MAC` AS `NET_ENDING_MAC`,date_format(`ACCESS_INTERNET_LOG`.`RECORD_TIME`,_gbk'%Y-%m-%d %H:%i:%s') AS `RECORD_TIME`,`ACCESS_INTERNET_LOG`.`DESTINATION_IP` AS `DESTINATION_IP`,`ACCESS_INTERNET_LOG`.`PORT` AS `PORT`,`ACCESS_INTERNET_LOG`.`SERVICE_TYPE` AS `SERVICE_TYPE`,`ACCESS_INTERNET_LOG`.`CONTENT1` AS `CONTENT1`,`ACCESS_INTERNET_LOG`.`CONTENT2` AS `CONTENT2`,`ACCESS_INTERNET_LOG`.`CONTENT3` AS `CONTENT3`,`ACCESS_INTERNET_LOG`.`ATTRIBUTE1` AS `ATTRIBUTE1`,`ACCESS_INTERNET_LOG`.`ATTRIBUTE3` AS `ATTRIBUTE3`,`ACCESS_INTERNET_LOG`.`ATTRIBUTE4` AS `ATTRIBUTE4`,`ACCESS_INTERNET_LOG`.`ATTRIBUTE5` AS `ATTRIBUTE5`,`ACCESS_INTERNET_LOG`.`ATTRIBUTE6` AS `ATTRIBUTE6`,`ACCESS_INTERNET_LOG`.`ATTRIBUTE7` AS `ATTRIBUTE7`,_utf8'' AS `BBS_KEY`,_utf8'' AS `BBS_TEXT`,_utf8'' AS `TYPE`,_utf8'' AS `BBSID`,_utf8'' AS `TITLE`,_utf8'' AS `USER_NAME`,_utf8'' AS `BBS_URL`,_utf8'a' AS `TABLETYPE` from `ACCESS_INTERNET_LOG` where (`ACCESS_INTERNET_LOG`.`SERVICE_TYPE` = _gbk'0013') union select `BBS_AUDIT`.`ID` AS `ID`,`BBS_AUDIT`.`CERTIFICATE_CODE` AS `CERTIFICATE_CODE`,`BBS_AUDIT`.`CUSTOM_NAME` AS `CUSTOM_NAME`,`BBS_AUDIT`.`NET_ENDING_NAME` AS `NET_ENDING_NAME`,`BBS_AUDIT`.`NET_ENDING_IP` AS `NET_ENDING_IP`,`BBS_AUDIT`.`NET_ENDING_MAC` AS `NET_ENDING_MAC`,date_format(`BBS_AUDIT`.`RECORD_TIME`,_gbk'%Y-%m-%d %H:%i:%s') AS `RECORD_TIME`,`BBS_AUDIT`.`DESTINATION_IP` AS `DESTINATION_IP`,`BBS_AUDIT`.`PORT` AS `PORT`,_utf8'0013' AS `SERVICE_TYPE`,_utf8'' AS `CONTENT1`,_utf8'' AS `CONTENT2`,_utf8'' AS `CONTENT3`,_utf8'' AS `ATTRIBUTE1`,_utf8'' AS `ATTRIBUTE3`,_utf8'' AS `ATTRIBUTE4`,_utf8'' AS `ATTRIBUTE5`,_utf8'' AS `ATTRIBUTE6`,_utf8'' AS `ATTRIBUTE7`,`BBS_AUDIT`.`BBS_KEY` AS `BBS_KEY`,`BBS_AUDIT`.`BBS_TEXT` AS `BBS_TEXT`,`BBS_AUDIT`.`TYPE` AS `TYPE`,`BBS_AUDIT`.`BBSID` AS `BBSID`,`BBS_AUDIT`.`TITLE` AS `TITLE`,`BBS_AUDIT`.`USER_NAME` AS `USER_NAME`,`BBS_AUDIT`.`BBS_URL` AS `BBS_URL`,_utf8'b' AS `TABLETYPE` from `BBS_AUDIT`$$DELIMITER ;
内存 512M
硬盘 80G
网卡 2个100M/1000M以太网卡+1个100M以太网卡
外形尺寸(深×宽×高) 355 mm×430 mm×42 mm
机架 1U 机架式
重量 7.5KG
固定接口 1 个RS232口
设备管理 Telnet,SSH
安全标准 CCC/IEC60 950/UL1950-CSA 950
直流电源 200W节能服务器专用电源
交流电压/频率 100~240V/50~59MHz
噪声 "环境温<28°C,声强为6.2BA的运行模式中,
侧位声压<40dBA"
相对湿度 非运行时 95%,于25°C至30°C温度下不凝结
环境温度 "运行时 10°C至35°C
非运行时 –40°C至+70°C周围环境"
高校版····配置参数 指标
处理器 至强Xeon Dual-core 1.86 GHz
内存 1G
硬盘 160G
硬盘扩展架 4个硬盘扩展架
网卡 2个千兆高速以太网服务器卡
外形尺寸(深×宽×高) 640 mm×430 mm×88 mm
机架 2U 机架式
重量 20KG
固定接口 1 个RS232口
设备管理 Telnet,SSH
安全标准 CCC/IEC60 950/UL1950-CSA 950
直流电源 300W服务器专用电源
交流电压/频率 90~264V/47~63Hz
噪声 "环境温<28°C,声强为6.2BA的运行模式中,
侧位声压<50dBA"
相对湿度 非运行时 95%,于25°C至30°C温度下不凝结
环境温度 "运行时 10°C至35°C
非运行时 –40°C至+70°C周围环境"
一个三角就可以丢三百分呀,呵呵
http://www.cyhd.net/programdesign/2008/0327/article_256.html过几天我把它移到CSDN博客上来。
哇·····
再次感谢······
刚google了一下,看了一些分区的资料········
:P
当然可以,
去GOOLGE 下 mysql range分区。
MYSQL分区介绍
“在系统跑的整个网络内所有人的上网行为(上网日志)都要入库······ ”以前看到有人做过类似的东西,感觉数据量非常大是导致性能下降的主要原因。
所以建议这样:
在1分钟(此时间也设置)内的操作行为应该不要重复写入数据库。
即在每个客户端有一个内存表,内是当前所有操作行为,每隔多长时间(可设置)读一下当前所有操作,
写入内存表中,直到每个操作结束了,再将每个操作的的开始和结束写入,这样每个操作只有2条记录。关于建表,应该区分:本地办公行为、本地非办公行为及上网办公行为、上网非办公行为等,分别不同标志,以便查询分析时统计每个人的工作行为和非工作行为比例等。也就是有个表,需要定义那些关键字是:本地办公行为和上网办公行为。
再请教一下啊各位高手·····
我这个是一个统计页面,现在写的sql是根本没法打开这个页面的,一打开就死掉···
原因是数据量大,每一个0代表一条sql语句去查询统计,这样非常的不合理·····
我现在想的办法是再建一个统计表,把这些数据都写到统计表中,然后统计页面直接去查询统计表····
我想请问的是还有什么更好的方法吗?能给点建议吗?