В БД необходимо вставить 1 000 000 записей. Как более рациональнее это сделать? Сколько записей добавлять через один запрос?
(1000000 / 800) , 800 - вставок за 1 присест [ INSERT INTO (... ...) VALUES (... ...), (... ...), .... ] = 1250 запросов максимальный размер вставки зависит от параметра max_allowed_packet в конфиге my.cnf в секции [mysqld] так же возможна промежуточная вставка по крону каждые 3 минкты, проверяет Дельта индекс позиции прошлого сканирования по PRIMARY KEY id и запись данных из диапазона BETWEEN
есть бд мускуль. она хорошая и шебуршит на славный праздник йом кипур. есть доступ администратора. ось - фортки ХП. (на них и крутится мускуль) нужен пароль рута (я знаю, что его можно сменить, менять не нужно. я знаю, что можно достать и брутить хеш пароля - тоже не интересно). есть три активные софтинки, что работают с бд (прям на локалхосте). первая - левый дампер бд, вторая - странные гуи для администрирования бд. третяя - собственно, myadmin (не phpmyadmin, хотя и не важно) я вижу два принципиальных пути - ковыряние в переменных этих софтин, чтобы достать пвд рута (я посмотрел - там нету тривиальных конфигов) и снифинг локального трафика (всеравно коннект идет к локалхосту и на портах его, наверное, можно слушать). только сниффер посоветуйте для этого дела, а то гуглить надоело зы ага, и вам привет.
Приветствую! Хотел бы узнать принципиальную разницу между Char(n) и VarChar(n) в СУБД MySQL. Что было бы лучше использовать и почему?
База данных MySQL. Как сформулировать данный запрос: PHP: DELETE FROM `таблица` WHERE `поле1`='информация1' что б он выполнялся только если первый символ поля2 равен 1?
Code: DELETE FROM `таблица` WHERE `поле1` = 'информация1' AND ASCII(`поле2`) = 0x31; DELETE FROM `таблица` WHERE `поле1` = 'информация1' AND SUBSTR(`поле2`, 1, 1) = '1'; DELETE FROM `таблица` WHERE `поле1` = 'информация1' AND `поле2` LIKE '1%';
Как выбрать из БД 2 записи случайным образом, но так чтобы эти записи не повторялись. Количество записей в БД неизвестно. Требуется сделать это только по средствам MySQL (Т.е. без помощи PHP и других языков)
Если выбирать так: PHP: SELECT * FROM user ORDER BY RAND() LIMIT 2; то в рамках одного запроса 2 случайно выбранные записи повторяться не будут. Если нужно, чтобы они не повторялись и при следующем запросе - придется как-то хранить (временные таблицы) уже выбранные записи.
Ну если это по-твоему не случайный - пиши свой тру-генератор случайных чисел в хранимых, чо еще Или формулируй более точно задачу, не понятно тогда что ты имеешь ввиду под "случайным". ЗЫ. Пара хабра-статей про оптимизацию ORDER BY RAND(): раз , два
Здравствуйте. Помогите пожалуйста написать кусок кода, а именно проверку совпадений по ip + браузер. Есть таблица с записями такого вида id|log|brouzer|ip|xxx|xxx1|xxx2| 1|maks|mozilla|111.22.33.444|xxx|xxx1|xxx2| 2|maks|mozilla|111.22.33.444|xxx|xxx1|xxx2| 3|lena|mozilla|777.22.33.444|xxx|xxx1|xxx2| 4|tolyk|mozilla|122.22.33.444|xxx|xxx1|xxx2| 5|lena|safary|122.22.33.444|xxx|xxx1|xxx2| 6|vova|mozilla|777.22.33.444|xxx|xxx1|xxx2| 7|vova|mozilla|111.22.33.444|xxx|xxx1|xxx2| 8|maks|mozilla|111.22.33.444|xxx|xxx1|xxx2| 9|maks|ie|111.22.33.555|xxx|xxx1|xxx2| 10|maks|ie|111.22.33.444|xxx|xxx1|xxx2| То есть нужно вывести log у которых совпали ip и brouzer maks - vova lena - vova В таблице примерно 50,000 строк
Есть sql: Code: SELECT column1, sum(column2) as column2, sum(column3) as column3, sum(column4) as column4, sum(column5) as column5, sum(column6) as column6, sum(IF(z=6, column1, 0)) as unknown FROM table WHERE 1 AND dt>=1299970800 AND dt<=1302645600 AND x IN (1) AND z IN (4) GROUP BY dt ORDER BY dt DESC У меня есть доступ к редактированию Code: AND z IN ( ЗДЕСЬ ) ну т.е. sql иньекция Как мне вынуть какое-нибудь значение, например, версию mysql? простой "union select 1,2,3,4,5,6,7 -- " не помогает, выводит синтаксическую ошибку на то, что закоменчено: Code: MySQL Error - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY dt ORDER BY dt DESC' at line 5 Проблема решена! Закоментил нулевым байтом. --------
А можно с помощью запроса вывести из поля text только часть текста? хочу для описания заметки реализовать
Спасибо, но этот способ я знаю, он очень долго выводит., я думал что может есть аналогичный этому способу но только через SQL - запрос SELECT * FROM table WHERE (и погнал запрос на выборку в 3 предложения)
Доброго времени суток! Подскажите пожалуйста, как определить номер строки в таблице, если строки непронумироваеы. SELECT-ом я её нахожу. А как определить порядковый номер - не знаю. СУБД - MySQL
делай выборку под другому параметру или юзай limit http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substr