Monday, December 27, 2010
Saturday, December 25, 2010
Thursday, December 23, 2010
Bug in TokuDB
I just found a bug on MariaDB version. I was able to replicate it 4-5 times.
MariaDB [test]> show create table video; CREATE TABLE `video` ( `id` int(4) NOT NULL AUTO_INCREMENT, `artist` varchar(100) NOT NULL, `title` varchar(100) NOT NULL, `video` varchar(20) NOT NULL, `date` date NOT NULL, PRIMARY KEY (`id`), KEY `video_artist_ix` (`artist`), KEY `video` (`video`), KEY `date_id` (`date`,`id`) ); MariaDB [test]> create table x_toku( `id` int(4) NOT NULL AUTO_INCREMENT, `artist` varchar(100) NOT NULL, PRIMARY KEY (`id`), KEY `video_artist_ix` (`artist`) ) ENGINE=TOKUDB ; Query OK, 0 rows affected (18.51 sec) MariaDB [test]> insert into x_toku select id, artist from video; Query OK, 10875440 rows affected (54.39 sec) Records: 10875440 Duplicates: 0 Warnings: 0 MariaDB [test]> delete from x_toku where artist like 'ma%'; Query OK, 274705 rows affected (22.49 sec) MariaDB [test]> select count(*) from x_toku where artist like 'ma%'; +----------+ | count(*) | +----------+ | 2 | +----------+ 1 row in set (0.00 sec) *** THIS MUST BE WRONG, DIDN'T WE DELETED EVERYTHING *** *** THE DATA PROBABLY COMES FROM THE INDEX *** MariaDB [test]> explain select count(*) from x_toku where artist like 'ma%'; +----+-------------+--------+-------+-----------------+-----------------+---------+------+------+--------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+-------+-----------------+-----------------+---------+------+------+--------------------------+ | 1 | SIMPLE | x_toku | range | video_artist_ix | video_artist_ix | 102 | NULL | 2 | Using where; Using index | +----+-------------+--------+-------+-----------------+-----------------+---------+------+------+--------------------------+ 1 row in set (0.00 sec) *** YEP, USING INDEX *** *** LETS TRY WITHOUT INDEX SCAN *** MariaDB [test]> select count(*) from x_toku ignore index(video_artist_ix) where artist like 'ma%'; +----------+ | count(*) | +----------+ | 1 | +----------+ 1 row in set (5.51 sec) *** THIS STILL MUST BE WRONG, DIDN'T WE DELETED EVERYTHING *** *** LETS SEE THE DATA *** MariaDB [test]> select * from x_toku where artist like 'ma%'; +---------+------------------+ | id | artist | +---------+------------------+ | 7953132 | mallu+adult2 | | 6640134 | Martin+Nieverra1 | +---------+------------------+ 2 rows in set (0.00 sec) *** HMMM *** *** MAY BE IT GETS THE DATA IS MATERIALIZED FROM THE INDEX *** MariaDB [test]> explain select * from x_toku where artist like 'ma%'; +----+-------------+--------+-------+-----------------+-----------------+---------+------+------+--------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+-------+-----------------+-----------------+---------+------+------+--------------------------+ | 1 | SIMPLE | x_toku | range | video_artist_ix | video_artist_ix | 102 | NULL | 2 | Using where; Using index | +----+-------------+--------+-------+-----------------+-----------------+---------+------+------+--------------------------+ 1 row in set (0.03 sec) *** YEP, USING INDEX *** *** LETS SEE THE DATA WITHOUT INDEX SCAN *** MariaDB [test]> select * from x_toku ignore index(video_artist_ix) where artist like 'ma%'; +----------+----------------------------------+ | id | artist | +----------+----------------------------------+ | 15292754 | Matt+Pokora+Catch+Me+If+You+Can1 | +----------+----------------------------------+ 1 row in set (5.24 sec) *** DOUBLE HMMM *** *** LETS SEE WHAT RECORD IS ACTUALLY REAL *** MariaDB [test]> select * from x_toku where id in (7953132,6640134,15292754); +----------+----------------------------------+ | id | artist | +----------+----------------------------------+ | 15292754 | Matt+Pokora+Catch+Me+If+You+Can1 | +----------+----------------------------------+ 1 row in set (0.00 sec)
Thursday, December 16, 2010
Monty says: A quick look at MySQL 5.5 GA
MySQL 5.5 is GA now.
I will soon check it more carefully, but here is what Monty says :)
Monty says: A quick look at MySQL 5.5 GA
I will soon check it more carefully, but here is what Monty says :)
Monty says: A quick look at MySQL 5.5 GA
Tuesday, December 14, 2010
MySQL bug and Optimization of nested query
There is strange bug in MySQL, it does not use primary key, if the value is NULL. Instead it do full table scan. Here is an example.
Copy / Paste this in text editor to see the correct post.
Copy / Paste this in text editor to see the correct post.
MariaDB [gateway]> explain select * from crontab where id = (select crontab from items where id = 19465650);
+----+-------------+---------+-------+---------------+---------+---------+-------+------+-------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+-------+---------------+---------+---------+-------+------+-------+
| 1 | PRIMARY | crontab | const | PRIMARY | PRIMARY | 4 | const | 1 | |
| 2 | SUBQUERY | items | const | PRIMARY | PRIMARY | 4 | | 1 | |
+----+-------------+---------+-------+---------------+---------+---------+-------+------+-------+
2 rows in set (0.00 sec)
MariaDB [gateway]> explain select * from crontab where id = (select crontab from items where id = @id);
+----+----------------------+---------+------+---------------+------+---------+------+---------+-----------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+----------------------+---------+------+---------------+------+---------+------+---------+-----------------------------------------------------+
| 1 | PRIMARY | crontab | ALL | NULL | NULL | NULL | NULL | 3854804 | Using where |
| 2 | UNCACHEABLE SUBQUERY | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Impossible WHERE noticed after reading const tables |
+----+----------------------+---------+------+---------------+------+---------+------+---------+-----------------------------------------------------+
2 rows in set (0.00 sec)
MariaDB [gateway]> explain
select
*
from
crontab,
items
where
items.crontab = crontab.id and
items.id = @id;
+----+-------------+-------+------+---------------+------+---------+------+------+-----------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+------+-----------------------------------------------------+
| 1 | SIMPLE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Impossible WHERE noticed after reading const tables |
+----+-------------+-------+------+---------------+------+---------+------+------+-----------------------------------------------------+
1 row in set (0.00 sec)
Friday, December 10, 2010
Indexes on virtual columns in MariaDB 5.2
MariaDB [(none)]> use test;
Database changed
MariaDB [test]> create table x(a int not null primary key,
-> b varchar(32),
-> c int as (a mod 5) virtual,
-> d int as (a mod 7) persistent
-> );
Query OK, 0 rows affected (0.00 sec)
MariaDB [test]> describe x;
+-------+-------------+------+-----+---------+---------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+---------+
| a | int(11) | NO | PRI | NULL | |
| b | varchar(32) | YES | | NULL | |
| c | int(11) | YES | | NULL | VIRTUAL |
| d | int(11) | YES | | NULL | VIRTUAL |
+-------+-------------+------+-----+---------+---------+
4 rows in set (0.03 sec)
MariaDB [test]> insert into x(a,b) values(1,1),(20,20);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
MariaDB [test]> select * from x;
+----+------+------+------+
| a | b | c | d |
+----+------+------+------+
| 1 | 1 | 1 | 1 |
| 20 | 20 | 0 | 6 |
+----+------+------+------+
2 rows in set (0.00 sec)
MariaDB [test]> create index c on x(c);
ERROR 1645 (HY000): Key/Index cannot be defined on a non-stored computed column
MariaDB [test]> create index d on x(d);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
MariaDB [test]> explain select * from x where d = 6;
+----+-------------+-------+------+---------------+------+---------+-------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+-------+------+-------------+
| 1 | SIMPLE | x | ref | c | c | 5 | const | 1 | Using where |
+----+-------------+-------+------+---------------+------+---------+-------+------+-------------+
1 row in set (0.00 sec)
Monday, November 15, 2010
MariaDB - drop in replacement of MySQL
MariaDB - drop in replacement of MySQL
I will speak at OpenFest conferention on 20.Nov.2010 15:00 , Sofia, Interpred, zala Plovdiv.
Map and additional info here:
http://openfest.org/archive/openfest-2010/program/
I will speak at OpenFest conferention on 20.Nov.2010 15:00 , Sofia, Interpred, zala Plovdiv.
Map and additional info here:
http://openfest.org/archive/openfest-2010/program/
Friday, November 12, 2010
Friday, September 3, 2010
Речния кон
Книга на Йов
40.15 Ето сега речния кон който съм направил както и тебе; Яде трева като вол.
40.16 Ето сега, силата му е в чреслата му, И якостта му в мускулите на корема му.
40.17 Клати опашката си като кедър; Жилите на бедрата му са сплотени.
40.18 Костите му са като медни цеви; Ребрата му са като железни лостове.
40.19 Той е изящното дело Божие; Оня, Който го е направил, го е снабдил с меча Си.
40.20 Наистина планините промишляват за него храна. Гдето играят всичките полски зверове.
40.21 Ляга под сенчестите дървета, В скривалището на тръстиката, и в блатата;
40.22 Сенчестите дървета го покриват със сянката си; Върбите на потоците го обкръжават.
40.23 Ето, ако би придошла река, той не трепери; Не се смущава, ако би се и Иордан устремил по устата му.
40.24 Може ли някой да го хване когато е на щрек. Или да прободе носа му с примка?
41.01 Можеш ли да извлечеш крокодила с въдица, Или да притиснеш езика му с въже?
41.02 Можеш ли тури оглавник на носа му, Или да пробиеш челюстта му с кука?
41.03 Ще отправи ли той към тебе много моления? Ще ти говори ли със сладки думи?
41.04 Ще направи ли договор с тебе, Та да го вземеш за вечен слуга?
41.05 Можеш ли игра с него както с птица? Или ще го вържеш ли за забава на момичетата си?
41.06 Дружините риболовци ще търгуват ли с него? Ще го разделят ли между търговците?
41.07 Можеш ли прониза кожата му със сулици, Или главата му с рибарски копия?
41.08 Тури ръката си на него; Спомни си боя, и не прави вече това.
41.09 Ето, надеждата да го хване някой е празна; Даже от изгледа му не отпада ли човек?
41.10 Няма човек толкова дързък щото да смее да го раздразни. Тогава кой може да застане пред Мене?
41.11 Кой Ми е дал по-напред, та да му отплатя? Все що има под цялото небе е Мое.
41.12 Няма да мълча за телесните му части, нито за силата му. Нито за хубавото му устройство.
41.13 Кой може да смъкне външната му дреха? Кой може да влезе вътре в двойните му челюсти?
41.14 Кой може да отвори вратите на лицето му? Зъбите му изоколо са ужасни.
41.15 Той се гордее с наредените си люспи, Съединени заедно като че ли плътно запечатани;
41.16 Едната се допира до другата Така щото ни въздух не може да влезе между тях;
41.17 Прилепени са една за друга, Държат се помежду си тъй щото не могат да се отделят.
41.18 Когато киха блещи светлина, И очите му са като клепачите на зората.
41.19 Из устата му излизат запалени факли, И огнени искри изкачат.
41.20 Из ноздрите му излиза дим, Като на възвряло гърне над пламнали тръстики.
41.21 Дишането му запаля въглища, И пламъкът излиза из устата му.
41.22 На врата му обитава сила, И всички заплашени скачат пред него.
41.23 Пластовете на месата му са слепени, Твърди са на него, не могат се поклати.
41.24 Сърцето му е твърдо като камък, Даже твърдо като долния воденичен камък.
41.25 Когато става, силните се ужасяват, От страх се смайват.
41.26 Мечът на тогова, който би го улучил, не може да удържи, - Ни копие, ни сулица, ни остра стрела.
41.27 Той счита желязото като плява, Медта като гнило дърво.
41.28 Стрелите не могат го накара да бяга; Камъните на прашката са за него като слама;
41.29 Сопи се считат като слама; Той се присмива на махането на копието.
41.30 Като остри камъни има по долните му части; Простира като белези от диканя върху тинята;
41.31 Прави бездната да ври като котел; Прави морето като варилница за миро.
41.32 Остава подир себе си светла диря, Тъй щото някой би помислил, че бездната е побеляла от старост.
41.33 На земята няма подобен нему, Създаден да няма страх.
41.34 Той изглежда всяко високо нещо; Цар е над всичките горделиви зверове.
40.15 Ето сега речния кон който съм направил както и тебе; Яде трева като вол.
40.16 Ето сега, силата му е в чреслата му, И якостта му в мускулите на корема му.
40.17 Клати опашката си като кедър; Жилите на бедрата му са сплотени.
40.18 Костите му са като медни цеви; Ребрата му са като железни лостове.
40.19 Той е изящното дело Божие; Оня, Който го е направил, го е снабдил с меча Си.
40.20 Наистина планините промишляват за него храна. Гдето играят всичките полски зверове.
40.21 Ляга под сенчестите дървета, В скривалището на тръстиката, и в блатата;
40.22 Сенчестите дървета го покриват със сянката си; Върбите на потоците го обкръжават.
40.23 Ето, ако би придошла река, той не трепери; Не се смущава, ако би се и Иордан устремил по устата му.
40.24 Може ли някой да го хване когато е на щрек. Или да прободе носа му с примка?
41.01 Можеш ли да извлечеш крокодила с въдица, Или да притиснеш езика му с въже?
41.02 Можеш ли тури оглавник на носа му, Или да пробиеш челюстта му с кука?
41.03 Ще отправи ли той към тебе много моления? Ще ти говори ли със сладки думи?
41.04 Ще направи ли договор с тебе, Та да го вземеш за вечен слуга?
41.05 Можеш ли игра с него както с птица? Или ще го вържеш ли за забава на момичетата си?
41.06 Дружините риболовци ще търгуват ли с него? Ще го разделят ли между търговците?
41.07 Можеш ли прониза кожата му със сулици, Или главата му с рибарски копия?
41.08 Тури ръката си на него; Спомни си боя, и не прави вече това.
41.09 Ето, надеждата да го хване някой е празна; Даже от изгледа му не отпада ли човек?
41.10 Няма човек толкова дързък щото да смее да го раздразни. Тогава кой може да застане пред Мене?
41.11 Кой Ми е дал по-напред, та да му отплатя? Все що има под цялото небе е Мое.
41.12 Няма да мълча за телесните му части, нито за силата му. Нито за хубавото му устройство.
41.13 Кой може да смъкне външната му дреха? Кой може да влезе вътре в двойните му челюсти?
41.14 Кой може да отвори вратите на лицето му? Зъбите му изоколо са ужасни.
41.15 Той се гордее с наредените си люспи, Съединени заедно като че ли плътно запечатани;
41.16 Едната се допира до другата Така щото ни въздух не може да влезе между тях;
41.17 Прилепени са една за друга, Държат се помежду си тъй щото не могат да се отделят.
41.18 Когато киха блещи светлина, И очите му са като клепачите на зората.
41.19 Из устата му излизат запалени факли, И огнени искри изкачат.
41.20 Из ноздрите му излиза дим, Като на възвряло гърне над пламнали тръстики.
41.21 Дишането му запаля въглища, И пламъкът излиза из устата му.
41.22 На врата му обитава сила, И всички заплашени скачат пред него.
41.23 Пластовете на месата му са слепени, Твърди са на него, не могат се поклати.
41.24 Сърцето му е твърдо като камък, Даже твърдо като долния воденичен камък.
41.25 Когато става, силните се ужасяват, От страх се смайват.
41.26 Мечът на тогова, който би го улучил, не може да удържи, - Ни копие, ни сулица, ни остра стрела.
41.27 Той счита желязото като плява, Медта като гнило дърво.
41.28 Стрелите не могат го накара да бяга; Камъните на прашката са за него като слама;
41.29 Сопи се считат като слама; Той се присмива на махането на копието.
41.30 Като остри камъни има по долните му части; Простира като белези от диканя върху тинята;
41.31 Прави бездната да ври като котел; Прави морето като варилница за миро.
41.32 Остава подир себе си светла диря, Тъй щото някой би помислил, че бездната е побеляла от старост.
41.33 На земята няма подобен нему, Създаден да няма страх.
41.34 Той изглежда всяко високо нещо; Цар е над всичките горделиви зверове.
Thursday, August 26, 2010
Tuesday, August 17, 2010
Tuesday, August 10, 2010
Sunday, August 8, 2010
Friday, August 6, 2010
Thursday, August 5, 2010
Strange PBXT issue
MariaDB [test]> create table b (a int primary key) engine=pbxt;
Query OK, 0 rows affected (3 min 43.59 sec)
MariaDB [test]> insert into b values(1);
Query OK, 1 row affected (8.08 sec)
MariaDB [test]> insert into b values(2);
Query OK, 1 row affected (8.08 sec)
MariaDB [test]> insert into b values(3);
Query OK, 1 row affected (1 min 21.43 sec)
MariaDB [test]> select * from b;
+---+
| a |
+---+
| 1 |
| 2 | Hmmm? where is 3?
+---+
2 rows in set (0.00 sec)
MariaDB [test]> insert into b values(3);
ERROR 1062 (23000): Duplicate entry '3' for key 'PRIMARY'
MariaDB [test]> select * from b where a = 3;
+---+
| a |
+---+
| 3 |
+---+
1 row in set (0.10 sec)
MariaDB [test]> select * from b order by a;
+---+
| a |
+---+
| 1 |
| 2 |
| 3 |
+---+
3 rows in set (0.00 sec)
Friday, July 30, 2010
Tuesday, June 29, 2010
Кристалният Джакомо
Едно време в далечен град се родило прозрачно дете. През него можело да се вижда както през въздуха и водата. Било от плът и кръв, а изглеждало като от стъкло и ако паднело, не се строшавало, най-много на челото му излизала прозрачна цицина.
Виждало се как бие сърцето му, виждало се как мислите му играят като шарени рибки в басейна си.
Веднъж по погрешка детето казало една лъжа и веднага хората видели нещо като огнена топка зад челото му: то казало истината и огнената топка се стопила. Оттогава нататък през целия си живот то не казало нито една лъжа.
Друг път един приятел му поверил тайна и веднага всички я видели като черна топка, която се въртяла в гърдите му, не му давала мира, и тайната престанала да бъде тайна.
Детето пораснало, станало младеж, после мъж и всеки можел да чете мислите му и да отгатва отговорите му, когато го питали още преди да е отговорил.
Той се казвал Джакомо, но хората го наричали «Кристалният Джакомо» и всички го обичали заради неговата честност и край него всички ставали по-добри.
За жалост в тая страна се издигнал да управлява един жесток диктатор. Започнал период на насилия, несправедливости и нещастия за народа. Който посмеел да се възмущава, изчезвал, без да остави следа. Който.се бунтувал, бил разстрелван. Бедните били преследвани, унижавани и оскърбявани по стотици начини.
Хората мълчали и страдали поради страх от последствията.
Но Джакомо не умеел да мълчи. Дори и да не отварял уста, неговите мисли говорели вместо него: той бил прозрачен и всички четели зад челото му мисли на възмущение - Джакомо осъждал несправедливостите и насилията на тирана. После тайно хората си повтаряли мислите на Джакомо и се обнадеждавали.
Тиранът накарал да арестуват Кристалния Джакомо и заповядал да го хвърлят в най-мрачния затвор.
Но тогава се случило нещо изключително. Стените на килията, в която Джакомо бил затворен, станали прозрачни, след тях — стените на затвора, и най-после — външните стени. Хората, които минавали край затвора, виждали Джакомо седнал на своето столче, сякаш и затворът бил от кристал, и продължавали да четат мислите му. Нощем затворът разпръсквал силна светлина и тиранът в своя дворец трябвало да спуска всички завеси, за да не я вижда, но пак не успявал да заспи. Кристалният Джакомо, макар и във вериги, бил по-силен от него, защото истината е по-силна от всяко нещо, по-светла от деня, по-страшна от ураган.
Виждало се как бие сърцето му, виждало се как мислите му играят като шарени рибки в басейна си.
Веднъж по погрешка детето казало една лъжа и веднага хората видели нещо като огнена топка зад челото му: то казало истината и огнената топка се стопила. Оттогава нататък през целия си живот то не казало нито една лъжа.
Друг път един приятел му поверил тайна и веднага всички я видели като черна топка, която се въртяла в гърдите му, не му давала мира, и тайната престанала да бъде тайна.
Детето пораснало, станало младеж, после мъж и всеки можел да чете мислите му и да отгатва отговорите му, когато го питали още преди да е отговорил.
Той се казвал Джакомо, но хората го наричали «Кристалният Джакомо» и всички го обичали заради неговата честност и край него всички ставали по-добри.
За жалост в тая страна се издигнал да управлява един жесток диктатор. Започнал период на насилия, несправедливости и нещастия за народа. Който посмеел да се възмущава, изчезвал, без да остави следа. Който.се бунтувал, бил разстрелван. Бедните били преследвани, унижавани и оскърбявани по стотици начини.
Хората мълчали и страдали поради страх от последствията.
Но Джакомо не умеел да мълчи. Дори и да не отварял уста, неговите мисли говорели вместо него: той бил прозрачен и всички четели зад челото му мисли на възмущение - Джакомо осъждал несправедливостите и насилията на тирана. После тайно хората си повтаряли мислите на Джакомо и се обнадеждавали.
Тиранът накарал да арестуват Кристалния Джакомо и заповядал да го хвърлят в най-мрачния затвор.
Но тогава се случило нещо изключително. Стените на килията, в която Джакомо бил затворен, станали прозрачни, след тях — стените на затвора, и най-после — външните стени. Хората, които минавали край затвора, виждали Джакомо седнал на своето столче, сякаш и затворът бил от кристал, и продължавали да четат мислите му. Нощем затворът разпръсквал силна светлина и тиранът в своя дворец трябвало да спуска всички завеси, за да не я вижда, но пак не успявал да заспи. Кристалният Джакомо, макар и във вериги, бил по-силен от него, защото истината е по-силна от всяко нещо, по-светла от деня, по-страшна от ураган.
Friday, February 26, 2010
Календар на Маите на Вашия мобилен телефон
Според календара на Маите, всеки ден е уникален и действията, задачите, и делата ни траяба да са съобразени с времевите цикли.
Първоначално Маите имат календар от 260 дни в годината. Броенето става с две въртящи се едно от друго зъбчати колела. С течение на времето добавят и трето зъбно колело, с което годината добива 365 дни. Разделението на тези дни е на 18 месеца със съответно 20 дни и един месец "Уайеб" с 5 дни. Всичко заедно дава една "година" от (18 * 20) + (1 * 5) = 365 дни. Четвърт деня, който остава при високосни години се пренебрегва от маите.
За ежедневието това е достатъчно, но не и за писане на история, защото годините се повтарят през 52 години. За да избегнат това, Маите са разделили времето на цикли. Нулевата точка на историческото зъбно колело съответства на 13.Aвгуст.3114 пр.Хр. Това е началото на последния възголям цикъл на времето, който свършва на 21.Декември.2012. Всеки голям цикъл е разделен на по-малки цикли, както се използват столетия, десетилетия и пр. Дадена дата се състои от няколко числа, чието първо число е броя на най-големите цикли от началото на възголемия цикъл (подобно на столетия, но по майската система). Следват по-малките цикли и накрая всичко се отнася към цикъла от 52-те години.
Получете всекидневно тази информация от календара на маите на вашия GSM
Subscribe to:
Posts (Atom)