Почему mysqli_multi_query() в PHP возвращает управление раньше, чем заканчивает выполнение запросов?
phorror
Строго говоря, вопрос, наверное, про функцию mysql API mysql_real_query() - поскольку пхпшная - всего лишь обертка над ней.

Если я запускаю mysqli_multi_query() с 1000 инсертов, то и в случае myisam, и в случае innodb таблиц функция возвращает управление мгновенно.
однако в innodb стоит по умолчанию innodb_flush_log_at_trx_commit = 1 - и на самом деле запись идёт медленно, что видно даже по select(*) - примерно по 100 req/sec.
И цикл more_results()/next_result() занимает те же 10 секунд.

При этом если вместо одно мультизапроса запускать в цикле mysqli_real_query(), которая так же является оберткой над API шной mysql_real_query(), но только с отрубленной возожностью выполнять мультизапросы, то выполнение занимает опять же 10 секунд.

Собственно, вопрос: я правильно понимаю, что мгновенный возврат управления - это исключительная фича Multiple Statement Execution, а не mysql_real_query() или какой-то другой функции?

5.5.35-MariaDB, PHP 5.5.9, mysqlnd, Fedora 20.

Вакансия в MySQL Bugs Analysis Support Group
маленький монстрик
svetasmirnova
В компанию Oracle, в группу, где я работаю, требуется человек. Текст вакансии:

Job ID: IRC2378540
Job Title: Technical Analyst 3-Support
Location: Russian Federation,St. Petersburg
Organization Name: MySQL Support
Department Description:
Oracle, the world's premier database company, is hiring expert technical support staff for MySQL - the world's most popular open source database! By joining this proven team of MySQL professionals, you will assist customers in the resolution of their issues with your wide-ranging skill set. From explaining database internals to reviewing schema design, from application architecture review to client code analysis, from best practices definition to defect analysis - customers will look to you for assistance in addressing their needs in a timely, professional manner. You will continually exercise and grow your diverse skills as you deliver the highest quality support possible to customers.
Brief Description:
As a member of the Support organization, your focus is to deliver post-sales support and solutions to the Oracle customer base while serving as an advocate for customer needs. This involves resolving post-sales non-technical customer inquiries via phone and electronic means, as well as, technical questions regarding the use of and troubleshooting for our Electronic Support Services. A primary point of contact for customers, you are responsible for facilitating customer relationships with Support and providing advice and assistance to internal Oracle employees on diverse customer situations and escalated issues.
Detailed Description:
As a Sr. Support Engineer, you will be the technical interface to customers, Original Equipment Manufacturers (OEMs) and Value-Added Resellers (VARs) for resolution of problems related to the installation, recommended maintenance and use of Oracle products. Have an understanding of all Oracle products in their competencies and in-depth knowledge of several products and/or platforms. Also, you should be highly experienced in multiple platforms and be able to complete assigned duties with minimal direction from management. In this position, you will routinely act independently while researching and developing solutions to customer issues.
Job Requirements:
Job duties are varied and complex utilizing independent judgment. May have project lead role. 4 years experience with Core products or five years experience with Applications products and have a technical degree i.e., BS Computer Science/Management Information Systems/Science/ Engineering/Math/Physics/Chemistry with a 3.0 GPA OR (for Applications) proven professional/ technical experience, i.e., demonstrating an understanding of Applications at a functional and technical level (preferably Oracle)
Additional Details
Successful candidates will possess the following characteristics and qualifications:
Excellent knowledge of the MySQL server and utilities
Excellent knowledge (theory/practice) of MySQL Connectors and client applications using ODBC, Java, PHP, Phyton, .NET and VB
Experience managing MySQL in production settings
C/C++ or Java software development experience: candidate should be able to write and debug client applications using C API and Connector/J
Understanding of high availability, load balancing, and performance
Understanding of database engine design and implementation
Strong troubleshooting skills
Strong experience with Linux, MAC OS X or Windows development environments
Basic knowledge of Linux administrative tools
Ability to pass all levels of MySQL Certification
Excellent spoken and written communications skills in English
Willingness to work on rotational basis
A desire to serve customers with a passion
A desire to be a team player within a small virtual community
Ability to manage multiple priorities with limited supervision

Ответить на вакансию можно по этой ссылке. Туда же все вопросы по условиям контракта и зарплаты.

А здесь меня можно поспрашивать о том, что придётся делать.
Tags:

Incorrect key file for table '/var/tmp/.............
1
white_thesis
UPD
В /var/tmp не хватало свободного места.
Спасибо eking_go

Осталось понять две вещи.
Ради 20 записей на 1 мегабайт суммарно мускуль городит гиговую++ временную таблицу. Есть в этом что-то неправильное. Это можно как-то оптимизировать?
Хорошо еще, что эта ошибка случилась. А если бы нет? Будь в /var 10 гиг свободного места я бы не скоро эту пакость заметил. Запрос выполняется ежеминутно :(

Сообщение о 'inkorrect key' формально верно, но неуместно. Правильным сообщением было бы "в каталоге кончилось место".
Можно ли научить мускуль _правильно_ сообщать о своих проблемах?
Read more...Collapse )

MySQL DBA и MySQL Developer сертификаты по 50$
маленький монстрик
svetasmirnova
Всё лето MySQL Support Team и Oracle Certification, при некоторой поддержке других отделов, работали над новым экзаменом по MySQL 5.6. Наконец работа завершена и стала доступной beta-версия экзамена. Beta-программа начнётся 28 октября и продлится 8 недель. Именно в это время у вас есть шанс получить сертификат за 50 долларов США. Подробнее о beta-программе и о том, как записаться на экзамен, здесь.

Мой личный комментарийCollapse )

MySQL User Group Meeting в Москве 2го августа 2013
autumn
_fidget_
В пятницу 2го августа в Москве состоится очередная встреча MySQL User Group.
На этой встрече выступят ребята из Percona.
Алексей Копытов расскажет о новшествах в Percona Server 5.6
Николай Ихалайнен сделает доклад о Percona XtraDB Cluster

Встреча бесплатная, помещение любезно предоставлено компанией Яндекс.

Зарегистрироваться можно по этой ссылке: http://events.yandex.ru/events/yagosti/MMUG/

Производительность percona vs mysql
Рысь
eking_go

Интересует практический момент - стоит переходить с mysql (стандартная сборка из репов centos/debian/ubuntu) на percona server? БД разные, объем 10-100Гб. Переходить не ради каких-то плюшек, а ради производительности? Т.е. если я одну и ту-же бд залью в mysql и в percona - на одном и том-же железе, при одинаковых опциях сервера, разница заметна будет?

А то вот слышал звон, да не знаю, есть ли смысл тестить. Есть опыт реальных переходов на реальных данных? Вообще, в каких случаях (кроме функциональности  - тут понятно) стоит смотреть в сторону percona? Ну и что-бы 2 раза не вставать - какие есть грабли при переходе?


MySQL User Group Meeting в Москве, 22 марта 2013.
autumn
_fidget_
После долгого перерыва, наконец-то состоится Moscow MySQL User
Group Meeting!

Встреча пройдёт 22го марта в 19:00 в офисе Mail.Ru на м. Аэропорт
(Викторенко 47 к.2), и будет посвящена MySQL 5.6.

Кто будет: Дмитрий Ленёв, ветеран (!) разработки MySQL, 10 лет в
команде MySQL AB, а затем Sun и Oracle, один из разработчиков MySQL
5.6.

У нас будет проектор и слайды, это пре-анонс, я надеюсь затащить
на встречу ещё многих интересных и полезных в мире MySQL
людей.

Как попасть: в целом, просто придти с паспортом или любым другим
документом, удостоверяющим личность в назначенное время,
предъявить документ охране (Вам нужен 2й подъезд), подняться на 5й
этаж на лифте :)

Для того, чтобы знать сколько примерно будет людей, я прошу всех,
кто намеревается быть, RSVP в почту.

Konstantin Osipov <kostja.osipov@gmail.com>

UPDATE, GROUP, MIN с двумя таблицами
me2012
yulya_b
Помогите, пожалуйста
Я хочу заменить переменную stage (стадия) в одной таблице, для всех пользователей, чей счет "верифицирован" (verified = 1) и кто начал выполнять еженедельное задание больше 3х месяцев назад (данные из другой таблицы). Я попыталась сделать следующее, но все время получаю сообщение об ошибке

UPDATE `users`, `WeeklySurvey` SET `users.stage` =

WHERE WeeklySurvey.id = users.i

AND users.verified =

GROUP BY WeeklySurvey id HAVING MIN(WeeklySurvey.date_filledout) < NOW() - INTERVAL 3 MONT

Данные хранятся в 2х таблицах
. Users
id       stage verifie
101       1           1
102       2           0
103       2           1
104       2           1
2. WeeklySurvey
index     id        date_filledout
1         101        2012-09-15
2         101        2013-01-15
3         102        2012-08-15
4         102        2013-02-10
5         103        2013-01-15
6         104        2012-06-15
7         104        2012-07-15
8         104        2013-01-15
То есть в итоге я хочу получить

id       stage verifie

101       9           1
102       2           0
103       2           1
104       9           1

Буду очень благодарна за помощь.  

Выбор описателя темы + последней записи в теме - можно ли оптимальнее?
m0z9
Здравствуйте. Предположим, имеется две таблицы, одна с описанием тем, другая - с сообщениями.
многокодаCollapse )

Вставить запись, если не существует и изменить поле, если существует (решено)
стид
kosenko_danila
Уважаемые сообщники, понимаю, вопрос простой, но в Сети предлагают решения не для моего случая. Или я неправильно искал.

Как наименьшим количеством запросов вставить запись, если не существует и изменить поле, если существует.

В общем, есть таблица счетчиков просмотров статей (пишется юзер, статья и количество просмотров.) И user, и art могут повторятся в разных строках.

CREATE TABLE IF NOT EXISTS `artlog` (
`user` int(5) NOT NULL,
`art` int(5) NOT NULL,
`cnt` int(5) NOT NULL

) ENGINE=MyISAM DEFAULT CHARSET=cp1251;



Надо инкрементировать поле cnt, соответствующее юзеру и статье, если такая запись существует или
вставить строку с юзером, статьей и счетчиком равным 1
Все это вызывается при каждом просмотре статьи.

PRIMARY KEY (`user`) не делаю, так как и user, и art могут повторятся

Следовательно, вариант INSERT INTO `artlog` (`user`, `art`,`cnt`) VALUES(1, 1,1) ON DUPLICATE KEY UPDATE cnt = cnt+1 не сработает (так как поле user не ключевое, вставится еще одна строка)


Решение в лоб (строки работы с БД опускаю):
select cnt from `artlog` where user=? and art=?',$user_id,$art

if(!cnt)
{
insert into `artlog` values ($user_id,$art,1)
}else{
update `artlog` set `cnt` = cnt+1 where art=? and user=? ',$art,$user_id
}

Есть ли более красивое решение?

Обновлено. Решение:

CREATE TABLE IF NOT EXISTS `artlog` (
`user` int(5) NOT NULL,
`art` int(5) NOT NULL,
`cnt` int(5) NOT NULL,
primary key (`user`, `art`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

Тогда сработает INSERT INTO `artlog` (`user`, `art`,`cnt`) VALUES(1, 1,1) ON DUPLICATE KEY UPDATE cnt = cnt+1 и не будет ошибок.
Всем ответившим - спасибо.

?

Log in