如何在远程mysql服务器上进行更快速的查询

时间:2016-12-17 09:17:56

标签: php mysql server

我在OVH上有2台服务器,它们位于欧洲的不同数据中心(SBG1和GRA1)。我的控制ping是10ms。 我的网站运行了许多插入和读取查询。

当我尝试我的本地mysql服务器时,它非常快,但是当我使用远程mysql服务器时,查询运行会延迟。

我的远程Mysql配置

# Percona Server template configuration

[mysqld]
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

pid-file=/var/run/mysqld/mysqld.pid
skip-name-resolve
bind-address = 5.196.77.XXX
# skip-networking
sql-mode = 'NO_AUTO_CREATE_USER'
explicit_defaults_for_timestamp = 1
# MyISAM #
key_buffer_size                 = 2G
# SAFETY #
max_allowed_packet              = 10G
# CACHES AND LIMITS #
tmp_table_size                 = 32M
max_heap_table_size            = 32M
query_cache_type               = 1
query_cache_size               = 2M
query_cache_limit              = 1M
join_buffer_size               = 6M
max_connections                = 600
thread_cache_size              = 100
open_files_limit               = 65535
table_definition_cache         = 4096
table_open_cache               = 4096

# INNODB #
innodb_flush_method            = O_DIRECT
innodb_log_files_in_group      = 2
innodb_log_file_size           = 512M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table          = 1
innodb_buffer_pool_size        = 20G
innodb_data_file_path          =ibdata1:20M:autoextend

# LOGGING #
log_error                      = /var/log/mysql/mysql-error.log
log-queries-not-using-indexes  = 1
slow_query_log                 = 1
long_query_time                = 3
slow_query_log_file            = /var/log/mysql/mysql-slow.log

我不知道如何连接每台服务器的本地连接。

我必须使用vRack吗? (我有,但我不知道我可以使用它) 要么 我是否必须将我的服务器移动到同一位置?

我该怎么办

1 个答案:

答案 0 :(得分:0)

  

Replication启用来自一个MySQL数据库服务器(主服务器)的数据   被复制到一个或多个MySQL数据库服务器(从属服务器)。   默认情况下,复制是异步的奴隶不需要   永久连接以接收来自主服务器的更新。

如果我知道你有一个服务器S-A宽度数据库D-A和一个带有数据库D-B的服务器B和一个带有数据库D-Local的本地服务器S-Local。

您可以复制本地服务器S-Local的D-A和D-B数据库。所以你的查询会更快。

我不确定S-A和S-B之间是否有通信,但您甚至可以在服务器S-B上复制数据库D-A,在服务器S-A上复制数据库D-B。

我的团队必须查询远程服务器。这很慢。通过复制,我们的查询连接到本地复制服务器,它非常有用