MYSQL跨服务器跨库关联表查询很慢怎么解决

MYSQL跨服务器跨库关联表查询很慢怎么解决,第1张

CSDN官方APP

中国专业的IT社区立即下载

CSDN首页

博客

学院

下载

GitChat

论坛

APP

问答

商城

VIP

活动

招聘

ITeye

TinyMind

专题

Copyright © 1999-2019,

CSDNNET, All Rights Reserved

crimeheaven的专栏

登录

crimeheaven关注 访问量 6万+ 原创 22 博主更多文章>

转 mysql跨库 *** 作速度慢的解决方案

crimeheaven阅读数:24752014-03-14

远程连接mysql速度慢的解决方法:skip-name-resolve取消DNS的反向解析

PHP远程连接MYSQL速度慢,有时远程连接到MYSQL用时4-20秒不等,本地连接MYSQL正常,出现这种问题的主要原因是,默认安装的MYSQL开启了DNS的反向解析,在MYINI(WINDOWS系统下)或MYCNF(UNIX或LINUX系统下)文件的[mysqld]下加入skip-name-resolve这一句。

但是,这样会引起一个问题:连接mysql时,不能使用 localhost连接了,而是要使用IP地址的;如果是按localhost对用户赋权限的话,用户登录权限也要修改一下的。

连接mysql速度慢的解决方法 

2台服务器一台跑iis+php,一台跑mysql,和以往一样配置好环境,测试页面一切OK

跑应用的时候发现php访问mysql速度很慢,这种情况在以前从未发现过,虽然2台服务器并非在同一网段中,但是ping数值基本上都在1,2ms之间,tcp连接应该不是问题关健,google以后找到答案,在myini文件的[mysqld]部分加入:skip-name-resolve,保存文件,重启mysql,一切OK啦,速度象飞一样了

新版本的mysql配置起来不象以前的那个傻瓜化了,这个问题折腾了我一上午的时间,晚上回来总算是解决了,嘿嘿,又学到一些东西。 

Windows 2003下的MySQL 5服务器,本机连接到MySQL服务非常快,局域网内有两台Linux机器,有一台连接很快,另外一台输入密码后要等好几秒钟才能连上。

一台服务器上的两个不同的 SQL Server 数据库

还是 两台服务器上的, 2个 SQL Server 数据库?

一台服务器上的两个不同的 SQL Server 数据库 很简单

比如你现在是 USE test1 数据库,建立一个表,叫 TestA

然后 USE test2 数据库,建立一个表,叫 TestB

那么要关联,就是 查询的时候,输入全路径

例如

SELECT

检索字段

FROM

test1dboTestA testa,

test2dboTestB testb

WHERE

关联条件

如果是跨服务器的,需要创建 数据库链接。

链接建立好以后,也是和上面的写法差不多。

建立DBLINK

/////////////////////////////SQL SERVER////////////////////////////

Exec sp_droplinkedsrvlogin DBVIP,Null

Exec sp_dropserver DBVIP

EXEC sp_addlinkedserver

@server='DBVIP',--被访问的服务器别名

@srvproduct='',

@provider='SQLOLEDB',

@datasrc='Server2' --要访问的服务器

EXEC sp_addlinkedsrvlogin

'DBVIP', --被访问的服务器别名

'false',

NULL,

'sa', --帐号

'thankyoubobby' --密码

Select from DBVIPpubsdboorders

1、where型子查询

(把内层查询结果当作外层查询的比较条件)

#不用order by 来查询最新的商品

select goods_id,goods_name from goods where goods_id = (select max(goods_id) from goods);

#取出每个栏目下最新的产品(goods_id唯一)

select cat_id,goods_id,goods_name from goods where goods_id in(select max(goods_id) from goods group by cat_id);

2、from型子查询

(把内层的查询结果供外层再次查询)

#用子查询查出挂科两门及以上的同学的平均成绩

思路:

#先查出哪些同学挂科两门以上

select name,count() as gk from stu where score < 60 having gk >=2;

#以上查询结果,我们只要名字就可以了,所以再取一次名字

select name from (select name,count() as gk from stu having gk >=2) as t;

#找出这些同学了,那么再计算他们的平均分

select name,avg(score) from stu where name in (select name from (select name,count() as gk from stu having gk >=2) as t) group by name;

3、exists型子查询

(把外层查询结果拿到内层,看内层的查询是否成立)

#查询哪些栏目下有商品,栏目表category,商品表goods

select cat_id,cat_name from category where exists(select from goods where goodscat_id = categorycat_id);

以上就是关于MYSQL跨服务器跨库关联表查询很慢怎么解决全部的内容,包括:MYSQL跨服务器跨库关联表查询很慢怎么解决、SQL Server中 两个不同的数据库中的两张表如何关联、在sqlserver实现跨库查询,该怎么实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9757909.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存