good_br
@good_br
учусь

База mysql падает при сложном запросе, как решить?

Добрый день! Делаю следующий запрос к базе mysql
use old;
SELECT * FROM education INNER JOIN baseeduc ON education.id_resume = baseeduc.id_resume

Выпадает ошибка : Error Code: 2013. Lost connection to MySQL server during query

Работаю с базой через OpenServer 5.2.2 и WorkBench 6.3 CE
MYSQL 5.5

Менял время коннекта, но не помогло. Что делать?

настройки mysql ниже
[client]
port		= %mysqlport%
character-sets-dir    = "%dprogdir%\\modules\\database\\%mysql_driver%\\share\\charsets"

[mysql]
character-sets-dir    = "%dprogdir%\\modules\\database\\%mysql_driver%\\share\\charsets"
no-auto-rehash
no-beep

[mysqld]
#skip-character-set-client-handshake
#skip-name-resolve
#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
%log%general_log = 1
%log%general_log_file = "%dprogdir%\\userdata\\logs\\%mysql_driver%_queries.log"
back_log = 100
basedir = "%dprogdir%\\modules\\database\\%mysql_driver%"
bind-address = %ip%
bulk_insert_buffer_size = 2M
character-set-server=%sqlchr%
character-sets-dir    = "%dprogdir%\\modules\\database\\%mysql_driver%\\share\\charsets"
collation-server=%mysqlcharset%
connect_timeout = 5
datadir = "%dprogdir%\\userdata\\%mysql_driver%"
default-storage-engine=InnoDB
expire_logs_days = 2
ft_min_word_len=4
init-connect="SET NAMES %sqlchr%"
interactive_timeout=99999
join_buffer_size = 1M
key_buffer_size = 25M
local-infile=0
log-error = "%dprogdir%\\userdata\\logs\\%mysql_driver%_error.log"
lower_case_table_names = 2
max_allowed_packet = 32M
max_connect_errors = 10
max_connections = 30
max_heap_table_size = 25M
max_tmp_tables = 25
myisam-recover-options=backup,force
myisam_max_sort_file_size = 256M
myisam_repair_threads = 1
pid_file = "%dprogdir%\\userdata\\temp\\mysql.pid"
port = %mysqlport%
query_cache_limit = 256K
query_cache_size=25M
read_buffer_size=2M
read_rnd_buffer_size=4M
server-id = 1
skip-external-locking
skip-innodb_adaptive_hash_index
sort_buffer_size = 1M
table_open_cache = 969
thread_cache_size = 4
tmp_table_size = 25M
tmpdir = "%dprogdir%\\userdata\\temp"
transaction-isolation = READ-COMMITTED
wait_timeout=99999

#innodb_fast_shutdown
#innodb_file_per_table = 1
#innodb_force_recovery=1
#skip-innodb_doublewrite
innodb_additional_mem_pool_size = 1M
innodb_buffer_pool_size = 20M
innodb_data_file_path = ibdata1:10M:autoextend
innodb_data_home_dir = "%dprogdir%\\userdata\\%mysql_driver%"
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 99999
innodb_log_buffer_size = 1M
innodb_log_file_size = 64M
innodb_log_files_in_group = 2
innodb_max_dirty_pages_pct = 90
innodb_read_io_threads=4
innodb_thread_concurrency=4
innodb_write_io_threads=4

[mysqldump]
quick
max_allowed_packet = 16M

[myisamchk]
key_buffer_size = 50M
sort_buffer_size = 50M
read_buffer = 8M
write_buffer = 8M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
open-files-limit = 2048
  • Вопрос задан
  • 528 просмотров
Решения вопроса 1
good_br
@good_br Автор вопроса
учусь
Помогла индексация таблиц

alter table baseeduc add index i_name (id_resume, eduform);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
проштудируйте хотя бы
www.mysql.ru/docs/man/Query_Speed.html

индексы, инт(ид), select конкретного, а не всего, where тоже не помешает, хоть и inner join
не поверю, что у вас есть 140 млн резюме, но даже с ними база вешаться не должна
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы