紧急求救!关于MySQL大数据量情况下性能优化的问题?

ZHANG9652 2005-05-31 08:50:36
在做一个计费项目,采用的数据库是MySQL 4.1,在数据达到百万条时,每进行一次查询,cpu都会100%,且几乎是没任何反应,我想作为一个成熟的数据库产品,百万条数据不应该会有什么问题,请教各位高手是否有解决问题的办法,愿500分酬谢!!
...全文
545 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZHANG9652 2005-06-11
  • 打赏
  • 举报
回复
晕,最后发现是设计上的问题,原来设计了一张主表和一张历史表,在查询时将他们进行union操作以便将数据全部查出,最后发现在union操作上耗费了大量的时间,这时尝试将历史表与主表合并,结果发现查询速度快了数倍,而且进行插入,删除操作的时候也不长,ok,解决了,谢谢各位
yeyi001 2005-06-09
  • 打赏
  • 举报
回复
Mysql中有查询高速缓存,使用高速缓存的语句格式:select sql_cache * from tableA where ...
terry915 2005-06-08
  • 打赏
  • 举报
回复
学习!有分的人!佩服!
陈年椰子 2005-06-06
  • 打赏
  • 举报
回复
UP

继续关注, 当好一个DBA, 不容易
陈年椰子 2005-05-31
  • 打赏
  • 举报
回复
为了速度, 在确保查询已经最优的前提, 就是以牺牲空间来获取速度, 比如分表, 建立索引

我碰到以下几种情况会导致查询速度慢
1、无索引 , 必要的索引可以很大地提高速度 , 但对字符型效果不大, 查询涉及关键的类别 , 尽量用数字,然后建立索引
2、效率低的SQL语句, 比如用了大量的 IN , NOT IN (这个在MYSQL4.x好象没有 :))
如果有几个条件, 可以选产生结果最小的做为首次查询, 因为MYSQL 4。X不支持子查询, 可以考虑建立临时表。
3、数据库服务器内存太小 , 这个你应该知道该如何办 :)
4、表太大, 可以根据主要分类, 把表分解 , 或者常用的字段合成一个表, 不常用的分成一个表
比如全国类型的企业信息, 可以按省分, 可以按行业分,
按省分后, 每个省再分3个表, 地址表(名称、地址、邮政编码),企业信息表(行业,规模,。。。) , 通信表(电话、传真、邮件、主页)

举个些例子,不知道对你有否帮助

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧