簡體   English   中英

按 bigint myisam 排序未排序。 為什么?

[英]Order by bigint myisam is not ordered. Why?

我不得不使用 bigint 而不是常規 int。 創建新表后,它出現異常。 請參閱下面的詳細信息。

MariaDB [user]> select * from dmn_base2 ORDER BY id DESC limit 4;
+------------+-----------------------+----------------+--------+
| id         | domain                | base           | tld_id |
+------------+-----------------------+----------------+--------+
| 1975224411 | bank-3dsecure.com     | bank-3dsecure  |      4 |
|  466015797 | bank-365.se           | bank-365       |    378 |
| 1711908528 | bank-2projects.online | bank-2projects |     20 |
|   27739599 | bank-2580.com         | bank-2580      |      4 |
+------------+-----------------------+----------------+--------+
   ^----this is unusual   

它使用索引:

MariaDB [user]> explain select * from dmn_base2 ORDER BY id DESC limit 4;
+------+-------------+-----------+-------+---------------+---------+---------+------+------+-------+
| id   | select_type | table     | type  | possible_keys | key     | key_len | ref  | rows | Extra |
+------+-------------+-----------+-------+---------------+---------+---------+------+------+-------+
|    1 | SIMPLE      | dmn_base2 | index | NULL          | PRIMARY | 8       | NULL |    4 |       |
+------+-------------+-----------+-------+---------------+---------+---------+------+------+-------+

表的結構:

MariaDB [user]> show columns from dmn_base2;
+--------+--------------+------+-----+---------+-------+
| Field  | Type         | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+-------+
| id     | bigint(20)   | NO   | PRI | NULL    |       |
| domain | varchar(100) | NO   | UNI | NULL    |       |
| base   | varchar(100) | NO   | MUL | NULL    |       |
| tld_id | int(11)      | NO   | MUL | NULL    |       |
+--------+--------------+------+-----+---------+-------+


MariaDB [capturesipbee]> SHOW CREATE TABLE dmn_base2;
+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table     | Create Table                                                                                                                                                                                                                                                                                                                                                                                            |
+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| dmn_base2 | CREATE TABLE `dmn_base2` (
  `id` bigint(20) NOT NULL,
  `domain` varchar(100) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,
  `base` varchar(100) COLLATE utf8mb4_bin NOT NULL,
  `tld_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `domain` (`domain`),
  KEY `base` (`base`),
  KEY `tld_id` (`tld_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=DYNAMIC |
+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

指標:

MariaDB [user]> show indexes from dmn_base2;
+-----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

| Table     | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| dmn_base2 |          0 | PRIMARY  |            1 | id          | A         |   460592774 |     NULL | NULL   |      | BTREE      |         |               |
| dmn_base2 |          0 | domain   |            1 | domain      | A         |   460592774 |     NULL | NULL   |      | BTREE      |         |               |
| dmn_base2 |          1 | base     |            1 | base        | A         |   460592774 |     NULL | NULL   |      | BTREE      |         |               |
| dmn_base2 |          1 | tld_id   |            1 | tld_id      | A         |        1967 |     NULL | NULL   |      | BTREE      |         |               |
+-----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+

查詢未結束,5小時后查殺無效

+------+-------+-----------+----+---------+-------+--------------+-----------------------------------------------------------+----------+
| Id   | User  | Host      | db | Command | Time  | State        | Info                                                      | Progress |
+------+-------+-----------+----+---------+-------+--------------+-----------------------------------------------------------+----------+
|   36 | root  | localhost | db | Killed  | 21107 | Sending data | select * from dmn_base2 ORDER BY id DESC limit 5          |    0.000 |

我的猜測是:損壞的索引文件?

我已將數據庫復制到其他設備。 相同的查詢按預期工作。

mysql> select * from dmn_base order by id desc limit 4;
+------------+----------------------+-------------------+--------+
| id         | domain               | base              | tld_id |
+------------+----------------------+-------------------+--------+
| 2147483647 | naturleckerlies.de   | naturleckerlies   |    921 |
| 2147475178 | meinlohne.de         | meinlohne         |    921 |
| 2147471022 | mamis-zeit.de        | mamis-zeit        |    921 |
| 2147456303 | kinderpact-berlin.de | kinderpact-berlin |    921 |
+------------+----------------------+-------------------+--------+
4 rows in set (0.00 sec)

我必須更新 MariaDB。(10.1->10-6)

當我使用 Plesk 時,我參考了這篇文章:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM