Forum Index > Open Source > MySQL

#0 by jekader Donor (Besatzungsarmee) (0 mesaje) at 2007-06-28 18:19:35 (877 săptămâni în urmă) - [Link]Top


Тип Реляционная СУБД
Разработчик MySQL AB
ОС Кроссплатформенное программное обеспечение
Лицензия GNU General Public License, Коммерческая лицензия
Сайт http://www.mysql.com


Mesaj util ?   Da   0 puncte

1 2 3
<< Precedenta      Următoarea >>

#1 by System at 2007-06-28 18:22:30 (877 săptămâni în urmă) - [Link]Top
В чем смысл создания отдельного топика? Вроде не видел вопросов по MySQL в других топиках.


Mesaj util ?   Da   0 puncte
#2 by jekader Donor (Besatzungsarmee) (0 mesaje) at 2007-06-28 18:23:29 (877 săptămâni în urmă) - [Link]Top
В общем, зачем создал тему. Решил я чуток оптимизировать свой сервак.

Увидел, что mysql запускает штук 10 процессов... Один из советов был отключить движок InnoDB - отрубил. Резко, осталось только два процесса, и меньше памяти занимают.

Но вопрос: что я теряю в таком случае? Вроде всё работает, как и работало.

#1 bbl321, вот видишь :) как раз потому и создал, что есть вопросы, и не хочу мусорить в других ветках :)


Mesaj util ?   Da   0 puncte
#3 by System at 2007-06-28 18:37:28 (877 săptămâni în urmă) - [Link]Top
InnoDB - движок, который заведует транзакциями в MySQL. Это обещает (теоретически) более высокую сохранность данных, особенно при сбоях. Сам я тесно MySQL не применял, но эпизодически слышу плохие отзывы про MySQL (в сравнении с PostgreSQL) именно в плане потери данных. Так что если у тебя база маленькая, данные не очень важные и бэкап делается достаточно часто, то InnoDB тебе не нужен.


Mesaj util ?   Da   0 puncte
#4 by jekader Donor (Besatzungsarmee) (0 mesaje) at 2007-06-28 18:50:50 (877 săptămâni în urmă) - [Link]Top
#3 bbl321, база маленькая. Данные - маловажные. Бэкапов не делается вообще. Доступы к базе редки... Так что, думаю, всё-же лучше сэкономлю ресурсы сервака.


Mesaj util ?   Da   0 puncte
#5 by Capilleary Donor (Патлатый) (0 mesaje) at 2007-06-29 10:28:21 (877 săptămâni în urmă) - [Link]Top




MySQL nu am pus. Da asha o intrebare: cit RAM se aloca pentru procesele necesare pentru rularea MySQL?

Pentru comparatzie (sorry daca cumva offtopic) aduc FirebirdSQL (OpenSource), shi PostgreSQL (OpenSource) - cu posibilitati mai largi ca MySQL.
Acum la mine ruleaza ambele servere.


Mesaj util ?   Da   0 puncte
#6 by jekader Donor (Besatzungsarmee) (0 mesaje) at 2007-06-29 10:52:01 (877 săptămâni în urmă) - [Link]Top
#5 Capilleary, не знаю, у меня лично MySQL висит на серваке с 64 RAM, и подкачки где-то 130 метров использовал с включённым innoDB, а без него - уже около 30 :)


Mesaj util ?   Da   0 puncte
#7 by AciDSuN Donor (VIP) (0 mesaje) at 2007-06-29 12:48:53 (877 săptămâni în urmă) - [Link]Top
#2 jekader, hm...
$ ps -ely |grep mysql
S     0  2158     1  0  85   0  1196  1122 -      ?        00:00:00 mysqld_safe
S    27  2194  2158  0  78   0 19800 34410 -      ?        00:00:07 mysqld


где ты видел 10 процессов?


Mesaj util ?   Da   0 puncte
#8 by jekader Donor (Besatzungsarmee) (0 mesaje) at 2007-06-29 13:36:12 (877 săptămâni în urmă) - [Link]Top
#7 AciDSuN, у себя на серваке под Debian


Mesaj util ?   Da   0 puncte
#9 by Gentoo (Power User) (0 mesaje) at 2007-06-30 09:06:00 (876 săptămâni în urmă) - [Link]Top
может я не по адресу но есть вопрос по php + MySQL

Собственно оно:

Есть 15 чисел скажем 1 - 15 необходимо сгенерировать группы (сколько возможно) из 5(не больше и не меньше)
скажем
'1 2 3 4 5'
'1 2 3 4 9'
'2 5 8 9 7'
но таким образом чтобы ни в одной стоке числа не повторялись например
'1 2 3 4 5' и '1 2 3 5 4' будут считаться одинаковыми

и после внести это все в базу.

я тут прикинул кроме того что ниже в голову ничего не пришло :)

кусок кода:
-------------------------------------------------------
$max = здесь хрен знает сколько всего вариантов;

for ($i=0; $i<$max; $i++)
{
    srand ((float) microtime() * 10000000);
    $array = array ('1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15' );
    $a_rand = array_rand ($array, 5);
   
дальше запрос должен быть примерно таким
INSERT INTO `table` VALUES (NULL, '1 2 3 4 5' );   
INSERT INTO `table` VALUES (NULL, '1 3 5 6 9' ); 
   
    $sql = 'INSERT INTO `table` VALUES (NULL, \'';
    $sql .= $array[$a_rand[0]];
    $sql .= $array[$a_rand[1]];
    $sql .= $array[$a_rand[2]];
    $sql .= $array[$a_rand[3]];
    $sql .= $array[$a_rand[4]];
    $sql .= "' )";
   
    $query = mysql_query($sql);
}   
   
есть ли возможность довести это все до ума? в какую сторону смотреть?
в принципе мне главное это группы чисел а их у меня должно получится не меньше 2 500 000 (у меня массив длиннее )
PS: php - php-5.2.2, mysql-5.0.42


Mesaj util ?   Da   0 puncte
#10 by System at 2007-06-30 10:25:01 (876 săptămâni în urmă) - [Link]Top
$a_rand = array_rand ($array, 5);

Зачем это нужно? Разве такой подход даст тебе гарантию уникальности групп?


Mesaj util ?   Da   0 puncte
#11 by Gentoo (Power User) (0 mesaje) at 2007-06-30 10:59:43 (876 săptămâni în urmă) - [Link]Top
в том то и дело что нет, $a_rand это произвольные 5 чисел которые потом могут повторится (как в примере) чего мне необходимо избежать


Mesaj util ?   Da   0 puncte
#12 by System at 2007-06-30 11:04:47 (876 săptămâni în urmă) - [Link]Top
#11 Gentoo, что и доказывет то, что писать код еще рано. Продумай алгоритм сначала.

Например, попробуй вывести общий критерий, которому твои группы должны соответствовать. Я такой критерий вижу, если я правильно понял условия твоей задачи.


Mesaj util ?   Da   0 puncte
#13 by Gentoo (Power User) (0 mesaje) at 2007-06-30 11:13:42 (876 săptămâni în urmă) - [Link]Top
#12 bbl321, "... Я такой критерий вижу ..." - хоть намекни куда смотреть?


Mesaj util ?   Da   0 puncte
#14 by System at 2007-06-30 11:22:58 (876 săptămâni în urmă) - [Link]Top
#13 Gentoo, смотреть в сторону того, что множество чисел, которыми ты оперируешь, упорядочено. Это значит, что любые два числа можно сравнить, и сказать какое из них больше другого. Отсюда следует также, что множество групп тоже будет упорядочено.
Это значит, что гарантией уникальности группы может служить упорядоченность ее элементов. Т. е. в группе надо расположить элементы по возрастающей (можно по убывающей, но мы больше привыкли считать вперед а не назад).
Поясню на примере:
(2,5,8,9,11)
(5,11,9,8,2)
Это - две группы. В них те же числа. Уместно выбрать первую из-за порядка элементов.

Видишь уже закономерность и алгоритм?


Mesaj util ?   Da   0 puncte
#15 by Gentoo (Power User) (0 mesaje) at 2007-06-30 11:59:53 (876 săptămâni în urmă) - [Link]Top
#14 bbl321, :) а сортировка это очень даже интересно вот примерно что получается

for ($i=0; $i<1000; $i++)
{
srand((float) microtime() * 10000000);
$input = array ('1', '2', '3', '4', '5', '6', '7', ......);
$rand_keys = array_rand($input, 5);
$ars = array ($input[$rand_keys[0]], $input[$rand_keys[1]], $input[$rand_keys[2]], $input[$rand_keys[3]], $input[$rand_keys[4]]);
arsort ($ars);
print_r ($ars);
}
на выходе
Array
(
    [4] => 14
    [3] => 13
    [2] => 12
    [1] => 8
    [0] => 1
)
Array
(
    [4] => 14
    [3] => 13
    [2] => 12
    [1] => 11
    [0] => 6
)
.......

спасибо что направил на путь истинный! :)
я сначала подумал насчет сравнения суммы потом догнал что это бред полный :)


Mesaj util ?   Da   0 puncte
#16 by System at 2007-06-30 12:11:21 (876 săptămâni în urmă) - [Link]Top
#15 Gentoo, я все равно не вижу зачем тебе надо применять array_rand()

В первой позиции в группе у тебя будет любое число от 1 до 15. Во второй позиции - число больше первого и меньше или равно 15. В третьей - число больше второго и меньше или равно 15. и.т.д.

Вот и все, тут случайностью и не пахнет, это просто циклы.


Mesaj util ?   Da   0 puncte
#17 by Gentoo (Power User) (0 mesaje) at 2007-06-30 12:27:04 (876 săptămâni în urmă) - [Link]Top
#16 bbl321, надо лечь поспать пару часов ато я чето туплю
хотя, array_rand тоже вариант хоть и не лучший


Mesaj util ?   Da   0 puncte
#18 by jekader Donor (Besatzungsarmee) (0 mesaje) at 2007-07-03 13:51:56 (876 săptămâni în urmă) - [Link]Top




#7 AciDSuN, кстати про "где ты видел?"

вот тебе "скрин" с сервака fedoramd.org :wink:


Mesaj util ?   Da   0 puncte
#19 by jekader Donor (Besatzungsarmee) (0 mesaje) at 2007-07-14 21:41:34 (874 săptămâni în urmă) - [Link]Top
фиг с ним с php, теперь уже MySQL не запускается :rofl:

Quote:

root@server2:/# mysqld_safe
nohup: ignoring input and redirecting stderr to stdout
Starting mysqld daemon with databases from /var/lib/mysql
STOPPING server from pid file /var/lib/mysql/server2.pid
070714 14:39:04  mysqld ended



А этому где корни искать? Логов вообще нет :(


Mesaj util ?   Da   0 puncte
#20 by System at 2007-07-14 21:43:39 (874 săptămâni în urmă) - [Link]Top
#19 jekader, после инсталяции пакета mysql надо создать системную базу данных. Подробности в начале файла /etc/rc.d/rc.mysqld


Mesaj util ?   Da   0 puncte
#21 by jekader Donor (Besatzungsarmee) (0 mesaje) at 2007-07-14 21:49:06 (874 săptămâni în urmă) - [Link]Top
#20 bbl321, спасибо, помогло!


Mesaj util ?   Da   0 puncte
#22 by jekader Donor (Besatzungsarmee) (0 mesaje) at 2007-07-17 23:23:44 (874 săptămâni în urmă) - [Link]Top
ещё вопросец:
свежепоставленный MySQL, вроде работает. о при этом, как я понимаю, никаких портов не слушает, и кроме как через CLI, зайти на него нельзя...

В чём может быть дело?


Mesaj util ?   Da   0 puncte
#23 by vsx Donor (The Infernal Brothers) (0 mesaje) at 2007-07-17 23:27:50 (874 săptămâni în urmă) - [Link]Top
#22 jekader, sudo netstat -anp|grep mysql


Mesaj util ?   Da   0 puncte
#24 by System at 2007-07-17 23:28:24 (874 săptămâni în urmă) - [Link]Top
#22 jekader, читать /etc/rc.d/rc.mysqld
Искать переменную SKIP (сразу после комментариев по поводу создания системной базы данных после инсталяции mysql)
It's not a bug, it's a security feature.


Mesaj util ?   Da   0 puncte
#25 by jekader Donor (Besatzungsarmee) (0 mesaje) at 2007-07-17 23:40:55 (874 săptămâni în urmă) - [Link]Top
#24 bbl321, :bow:

#23 vsx, нет, это дело - именно в настройках Слаки по дефолту :)


Mesaj util ?   Da   0 puncte

1 2 3
<< Precedenta      Următoarea >>

Forum Index > Open Source > MySQL


Navigare rapidă:


Comunitatea digitală din Moldova. Să adunăm și să organizăm conținutul autohton de pe întreg internet pe un singur site web.