mysql的数据量范围能达到多少?
linux吧
全部回复
仅看楼主
level 12
yujiaaoshiwo 楼主
自建数据库 8核心16G 机器 邮件表超过100w 就开始卡的不行 select count(*) 40多s才返回。。。当然也有程序的问题 不会主动删除过期文件。。。 无力吐槽~
求mysql 通常优化 方案~
2017年12月18日 03点12分 1
level 12
postgresql
2017年12月18日 03点12分 2
老项目 应该迁移不了postgresql 最多是mysql 优化
2017年12月18日 03点12分
level 1
具体的执行计划和SQL
2017年12月25日 09点12分 4
level 14
100w就开始卡?估计是表设计的不行。
而且你说的select count(*)也没说具体的过滤条件,也没说表的设计,根本没法分析数据库在检索的时候遇到了什么问题。没解
2017年12月25日 09点12分 5
研发他们写的代码极度不合理 每次删除邮件不从数据库里面删除 加上del字段标记del=1 还有一个经常会出现的 select * from mail where subject like '%2-%' 这种查询 这种吧子标题和副标题放在一起的设计 内容就是 长json串 然后就是标题 发送者 接受者之类的。。。
2017年12月25日 10点12分
表的设计很难推动修改 老的项目了 主要是想问下这种情况能否通过数据库参数缓解下 通过临时加上删除数据的定时解决了 100w条80w都是不用的 醉的不行
2017年12月26日 00点12分
@yujiaaoshiwo 你还是没了解我说的是什么。因为数据库查询可能是你sql写的有问题,可能是表设计的有问题。你都不给别人看表结构,以及你的查询语句,怎么判断,怎么优化?
2017年12月26日 03点12分
还是需要具体的信息包括SQL和结构
2017年12月26日 10点12分
level 15
看起来好腻害
2017年12月25日 10点12分 6
level 15
收留窝特么滴
2017年12月25日 10点12分 7
level 15
呦呦
2017年12月25日 10点12分 8
我是渣渣 Orz羊头大神
2017年12月25日 10点12分
回复 yujiaaoshiwo : 窝只是女装男孩纸特么滴呦呦
2017年12月25日 10点12分
回复 yujiaaoshiwo : 收留窝乖
2017年12月25日 10点12分
@🍗羊头 我还想让你收留我呢 都快不干了
2017年12月25日 11点12分
level 15
大佬,划水
2017年12月26日 09点12分 9
level 12
yujiaaoshiwo 楼主
CREATE TABLE `mail` (
`messageid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL,
`sender` int(10) unsigned NOT NULL DEFAULT '0',
`receiver` int(10) unsigned NOT NULL DEFAULT '0',
`type` int(10) unsigned NOT NULL DEFAULT '0',
`mail_from` varchar(200) NOT NULL,
`mail_to` varchar(200) NOT NULL,
`subject` varchar(200) NOT NULL,
`content` text NOT NULL,
`isRead` int(10) unsigned NOT NULL DEFAULT '0',
`gift` int(4) NOT NULL DEFAULT '0',
`isreward` int(4) unsigned NOT NULL DEFAULT '0',
`item` varchar(500) DEFAULT NULL,
`del` int(1) NOT NULL DEFAULT '0',
`update_at` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`messageid`),
KEY `uid` (`uid`),
KEY `del` (`del`)
) ENGINE=InnoDB AUTO_INCREMENT=87924 DEFAULT CHARSET=utf8;
慢查询sql:
select count(*) as count, type from mail where uid=112000136 and isRead = 0 and del = 0 group by type;
update mail set del = 1 WHERE `uid` = 525000022 AND type = 2 AND `subject` LIKE '2-%';
@奋进的萝卜头 @大魔导师
虽然问题已经通过删除数据解决 但是还是问下如果以后遇到这类情况的通用优化方案 提前感谢并Orz 两位大牛
2017年12月26日 10点12分 10
第一个select,应该是group by的时候比较慢,建议对type加一个索引。 第二个明显就是like的问题了,对无索引字段一个个like,慢是必然的,解决不了。但是更新信息慢就慢了,基本没什么影响。
2017年12月27日 03点12分
level 12
yujiaaoshiwo 楼主
问题出现在程序不删除数据 将数据的del标记为1 就是删除了(无语)
然后就是这个一个很神奇的不分类查询 把几个字段合并成了一个字段用like查询(subject 里面有1 2 开头的是不同分类)
2017年12月26日 10点12分 12
1