Не логичное поведение SQL запросов SELECT

Kosarev

Новичок
Не логичное поведение SQL запросов SELECT

Есть таблица.
В таблице ЕСТЬ записи.

select NUMBER from NOM where INDEXX=134;

выдаёт результат из 13 значении

select NUMBER from NOM where INDEXX=134 order NUMBER DESC;

выдаёт нулевой результат.

select MAX(NUMBER) from NOM where INDEXX=134;

выдаёт 1

select MAX(NUMBER) from NOM;
даёт 13 - INDEXX для него 134
 

si

Administrator
можно здесь увидеть copy-paste результатов этих запростов из консоли mysql.
 

Kosarev

Новичок
mysql> select NUMBER from NOM where INDEXX=134 ;
+--------+
| NUMBER |
+--------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
| 13 |
+--------+
13 rows in set (0.00 sec)

mysql> select NUMBER from NOM where INDEXX=134 order by NUMBER DESC;
Empty set (0.00 sec)

-~{}~ 10.09.04 12:20:

mysql> select MAX(NUMBER) from NOM where INDEXX=134 ;
+-------------+
| MAX(NUMBER) |
+-------------+
| 1 |
+-------------+
1 row in set (0.00 sec)

mysql> select MAX(NUMBER) from NOM;
+-------------+
| MAX(NUMBER) |
+-------------+
| 13 |
+-------------+
1 row in set (0.00 sec)
 

chira

Новичок
а так:
select `NUMBER` from `NOM` where INDEXX=134 order by 1 DESC
что выдает?
 

Kosarev

Новичок
mysql> select `NUMBER` from `NOM` where INDEXX=134 order by 1 DESC;
Empty set (0.00 sec)

-~{}~ 10.09.04 17:36:

mysql> select NUMBER from NOM;
+--------+
| NUMBER |
+--------+
| 1 |
| 2 |
| 3 |
| 4 |
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
| 11 |
| 12 |
| 13 |
+--------+
17 rows in set (0.00 sec)

-~{}~ 10.09.04 17:37:

mysql> select version();
+-----------+
| version() |
+-----------+
| 4.0.20 |
+-----------+
1 row in set (0.00 sec)
 

Kosarev

Новичок
Дамп и последующее востановление базы помогло.

Таблица была типа BerkeleyDB. Вся проблема в том что она не единственная такого типа и не часто используемая. Блокирование чтения и записи были испробованы тёплым пятничным утром. Так есть и некоторые таблицы InnoDB но в работе с ним подобного не наблюдалось. Повезло что NOM используется редко.

Рестарт мускула в пятницу вечером просто не помог.
 

si

Administrator
по моему mysql ab рекомендует использовать innodb, bdb engine несильно развивается и тестируется.
 

Kosarev

Новичок
Линк ??? Мне это нужно доказать колегам.

-~{}~ 13.09.04 11:49:

http://dev.mysql.com/doc/mysql/en/BDB.html

We at MySQL AB are working in close cooperation with Sleepycat to keep the quality of the MySQL/BDB interface high. (Even though Berkeley DB is in itself very tested and reliable, the MySQL interface is still considered gamma quality. We are improving and optimizing it.)

Even though Berkeley DB is in itself very tested -- может я английского не понимаю?

-~{}~ 13.09.04 11:54:

До сих пор не замечал ни какой разницы в работе bdb и InnoDB.
Единственый плюс bdb в том что если у хостера мускул >=4 то bdb включён по умолчанию и работает без дополнительных настроек. В то время как для InnoDB необходимы дополнительные настройки. И не все администраторы соглашаются их задать.

-~{}~ 13.09.04 12:18:

http://dev.mysql.com/doc/mysql/en/BDB_characteristics.html

в коментариях приводят за и против.
 
Сверху