2014-10-19 44 views
0

我有一個數據庫,其中填充了來自體育賽事的結果。幾天前,我意識到結果並沒有被寫下來。我在Ubuntu Linux 64位上使用MySQL 5.6.14。MySQL數據庫已滿?

到目前爲止我試過下列步驟操作:

  1. 檢查所有的日誌,我能找到。任何日誌文件中都沒有錯誤。

  2. 狀態中最大的表的:

 
mysql> show table status like 'results'; 
+---------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ 
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time   | Update_time | Check_time | Collation   | Checksum | Create_options | Comment | 
+---------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ 
| results | InnoDB |  10 | Compact | 1774207 |   222 | 394149888 |    0 | 218644480 | 28311552 |   NULL | 2014-07-03 21:40:39 | NULL  | NULL  | latin1_swedish_ci |  NULL |    |   | 
+---------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+ 
1 row in set (0.00 sec) 
  • 爲最大表的行數:
  •  
    mysql> select count(*) from results; 
    +----------+ 
    | count(*) | 
    +----------+ 
    | 1763471 | 
    +----------+ 
    1 row in set (0.89 sec) 
    
  • 試圖找到我超過但沒有找到任何限制。
  • 關於我能做什麼的任何想法?

    +0

    什麼,當你執行'手動insert'發生什麼呢? – 2014-10-19 19:55:52

    +0

    結果如何在數據庫中結束?例如,如果它通過HTTP請求,請求是否仍然有效?如果是PHP,請打開所有錯誤報告並查看是否顯示了某些內容。如果沒有顯示出來,請從您的腳本中複製插入查詢並嘗試在數據庫上執行它並查看會發生什麼。 – vrijdenker 2014-10-19 19:56:44

    +0

    我試過一些手動插入。他們進展順利。但後來我測試了一個事件的結果。那是470行。只有100左右被插入。這讓我懷疑可能會有一些我已經達到的限制。 – 2014-10-19 20:00:39

    回答

    0

    Mysql具有表格文件的最大大小。 你在這裏找到:

    Mysql

    一個表最多可包含1000列。

    InnoDB內部最大密鑰長度爲3500字節,但MySQL本身將其限制爲3072字節。 (對於MySQL 5.0.17之前的非64位版本,以及對於5.0.15之前的所有版本,1024字節)。

    單列索引的索引鍵最多可達767個字節。相同的長度限制適用於任何索引鍵前綴。請參見第13.1.8節「CREATE INDEX語法」。

    除變長列(VARBINARY,VARCHAR,BLOB和TEXT)外,最大行長度略小於數據庫頁面的一半。也就是說,最大行長度大約是8000字節。 LONGBLOB和LONGTEXT列必須小於4GB,並且總行長度(包括BLOB和TEXT列)必須小於4GB。

    如果一行長度不足半頁,則它全部存儲在本地頁面內。如果超過半頁,則可以選擇可變長度的列用於外部頁外存儲,直到該行適合半頁內爲止,如第14.2.10.2節「文件空間管理」中所述。

    儘管InnoDB支持行內部尺寸大於65535個字節時,MySQL本身規定的65,535行大小限制所有列的總大小:

    +0

    丹尼斯請爲您的答案添加更多詳細信息與鏈接的問題只有答案是,他們可能會失效,如果鏈接被刪除。 – Namphibian 2014-10-19 20:17:34