mysql数据太多查询不动怎么办 mysql可以同时查询多张表吗?

[更新]
·
·
分类:互联网
4603 阅读

mysql数据太多查询不动怎么办

mysql可以同时查询多张表吗?

mysql可以同时查询多张表吗?

刚超过百万的表真不大,我做过的公司很多表都是几百万,个别的到了千万,对于一般的查询来说可以不用刻意考虑怎么存储的问题,mysql够扛的。而对于复杂的多连表查询,尤其是在做数据统计业务时,sql操作会很复杂,会很慢,但是因为这个业务是对数据的实时性要求不高,我们会采用写定时任务的方式,提前把多张表查询跑成一张最终的结果存储起来,我们业务上的sql直接去查这个最终表就行了。
有人说分表,横着切分。但是我见过的公司通常不会完全这样做,因为分表之后的弊端也很大,会导致有些业务对该数据的操作需求实现不了或者很麻烦。实际的做法是,分表的同时,仍然保留整体的原表,两份数据,一份是原表,另一份是对原表进行切分的副本,用这个分开的表来满足某部分业务的查询需求即可。至于怎么分,看业务,比如说我做过一款手机游戏的app,在统计用户的月活跃情况时,我会按月份分。
抛开具体的业务不谈,在其他方面通常的解决方案还有:
第一:成本最低也是最实用的方式:索引优化、sql优化。
第二:上缓存,查询也不一定完全就是数据量大影响的,高访问量请求数据库密集时,也会影响,用缓存挡在mysql前面,进行流量削锋。
第三:mysql读写分离,其实本质也是一种负载均衡的实现方式。
第四:分布式,把同一份数据分到不同服务器上,这个成本就大了,一般的公司用不到,想满足不同业务的需求对技术要求很高,较难解决的问题是在数据的一致性上。
等等,不管使用什么技术,一定要考虑好这个技术可能带来的后果尤其弊端是什么。

Mysql为什么启动不了?

1、mysql配置文件设置错误
A、首先查找mysql对应的配置文件
如果服务是使用指定的配置文件启动,到对应的文进行修改(文件的位置从控制面板中服务的属性中查看)
B、检查参数basedir和datadir对应的目录是否存在,如:
basedir d:/mysql/
datadir d:/mysql/data/
2、检查Mysql目录有没有给系统的System用户文件读写权限(一般以System用户启动mysql服务)
3、检查mysql的3306端口是否被占用,如果占用,则修改配置文件中端口参数,将端口修改为其他值。
4、其他mysql的数据库文件遭到破坏附:一、windows下使用命令启动mysql服务1、cmd进入控制台
2、net start [mysql服务名],例:
net start mysql
net start mysql_cy
(......,如果安装了多个mysql,则可以启动多个)
二、windows下使用命令停止mysql服务
net stop mysql
net stop mysql_cy
2、根据名称找到mysql服务,双击mysql的服务,弹出服务的属性窗口
3、属性的【可执行文件的路径】中显示(例子):
D:mysqlinmysqld-nt mysql,其中defaults-file指定了参数文件的位置,如果没有该参数,一般参数文件在windows的系统目录下或mysql的目录下,从的配置中可以找到mysql数据的存储位置。