迷你mysql資料庫僅4m大小(mysql體積小)

本文目錄一覽:

安裝opencms是綁定mysql資料庫這一步總是報max什麼unpack錯誤,說太小,我的是4m

我是這麼弄好的,在my.ini文件最後面添加

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

max_allowed_packet = 20M

本來沒有這個文件的,複製的my-default文件。。。

mysql 5.6.20 佔用內存超大,大概400M左右

解決mySQL佔用內存超大問題

為了裝mysql環境測試,裝上後發現啟動後mysql佔用了很大的虛擬內存,達8百多兆

更改後如下:

innodb_buffer_pool_size=576M -256M InnoDB引擎緩衝區佔了大頭,首要就是拿它開刀

query_cache_size=100M -16M 查詢緩存

tmp_table_size=102M -64M 臨時表大小

key_buffer_size=256m -32M

重啟mysql服務後,虛擬內存降到200以下.

另外mysql安裝目錄下有幾個文件:my-huge.ini 、my-large.ini、my-medium.ini…這幾個是根據內存大小作的建議配置,新手在設置的時候也可以參考一下。

2G內存的MYSQL資料庫伺服器 my.ini優化 (my.ini)

2G內存,針對站少,優質型的設置,試驗特:

table_cache=1024 物理內存越大,設置就越大.默認為2402,調到512-1024最佳

innodb_additional_mem_pool_size=8M 默認為2M

innodb_flush_log_at_trx_commit=0 等到innodb_log_buffer_size列隊滿後再統一儲存,默認為1

innodb_log_buffer_size=4M 默認為1M

innodb_thread_concurrency=8 你的伺服器CPU有幾個就設置為幾,默認為8

key_buffer_size=256M 默認為218 調到128最佳

tmp_table_size=64M 默認為16M 調到64-256最掛

read_buffer_size=4M 默認為64K

read_rnd_buffer_size=16M 默認為256K

sort_buffer_size=32M 默認為256K

max_connections=1024 默認為1210

試驗一:

table_cache=512或1024

innodb_additional_mem_pool_size=2M

innodb_flush_log_at_trx_commit=0

innodb_log_buffer_size=1M

innodb_thread_concurrency=8 你的伺服器CPU有幾個就設置為幾,默認為8

key_buffer_size=128M

tmp_table_size=128M

read_buffer_size=64K或128K

read_rnd_buffer_size=256K

sort_buffer_size=512K

max_connections=1024

試驗二:

table_cache=512或1024

innodb_additional_mem_pool_size=8M

innodb_flush_log_at_trx_commit=0

innodb_log_buffer_size=4M

innodb_thread_concurrency=8

key_buffer_size=128M

tmp_table_size=128M

read_buffer_size=4M

read_rnd_buffer_size=16M

sort_buffer_size=32M

max_connections=1024

一般:

table_cache=512

innodb_additional_mem_pool_size=8M

innodb_flush_log_at_trx_commit=0

innodb_log_buffer_size=4M

innodb_thread_concurrency=8

key_buffer_size=128M

tmp_table_size=128M

read_buffer_size=4M

read_rnd_buffer_size=16M

sort_buffer_size=32M

max_connections=1024

經過測試.沒有特殊情況,最好還是用默認的.

2G內存,針對站多,抗壓型的設置,最佳:

table_cache=1024 物理內存越大,設置就越大.默認為2402,調到512-1024最佳

innodb_additional_mem_pool_size=4M 默認為2M

innodb_flush_log_at_trx_commit=1

(設置為0就是等到innodb_log_buffer_size列隊滿後再統一儲存,默認為1)

innodb_log_buffer_size=2M 默認為1M

innodb_thread_concurrency=8 你的伺服器CPU有幾個就設置為幾,建議用默認一般為8

key_buffer_size=256M 默認為218 調到128最佳

tmp_table_size=64M 默認為16M 調到64-256最掛

read_buffer_size=4M 默認為64K

read_rnd_buffer_size=16M 默認為256K

sort_buffer_size=32M 默認為256K

max_connections=1024 默認為1210

thread_cache_size=120 默認為60

query_cache_size=64M

優化mysql資料庫性能的十個參數

(1)、max_connections:

允許的同時客戶的數量。增加該值增加 mysqld 要求的文件描述符的數量。這個數字應該增加,否則,你將經常看到 too many connections 錯誤。 默認數值是100,我把它改為1024 。

(2)、record_buffer:

每個進行一個順序掃描的線程為其掃描的每張表分配這個大小的一個緩衝區。如果你做很多順序掃描,你可能想要增加該值。默認數值是131072(128k),我把它改為16773120 (16m)

(3)、key_buffer_size:

索引塊是緩衝的並且被所有的線程共享。key_buffer_size是用於索引塊的緩衝區大小,增加它可得到更好處理的索引(對所有讀和多重寫),到你能負擔得起那樣多。如果你使它太大,系統將開始換頁並且真的變慢了。默認數值是8388600(8m),我的mysql主機有2gb內存,所以我把它改為 402649088(400mb)。

4)、back_log:

要求 mysql 能有的連接數量。當主要mysql線程在一個很短時間內得到非常多的連接請求,這就起作用,然後主線程花些時間(儘管很短)檢查連接並且啟動一個新線程。

back_log 值指出在mysql暫時停止回答新請求之前的短時間內多少個請求可以被存在堆棧中。只有如果期望在一個短時間內有很多連接,你需要增加它,換句話說,這值對到來的tcp/ip連接的偵聽隊列的大小。你的操作系統在這個隊列大小上有它自己的限制。試圖設定back_log高於你的操作系統的限制將是無效的。

當你觀察你的主機進程列表,發現大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | null | connect | null | login | null 的待連接進程時,就要加大 back_log 的值了。默認數值是50,我把它改為500。

(5)、interactive_timeout:

伺服器在關閉它前在一個交互連接上等待行動的秒數。一個交互的客戶被定義為對 mysql_real_connect()使用 client_interactive 選項的客戶。 默認數值是28800,我把它改為7200。

(6)、sort_buffer:

每個需要進行排序的線程分配該大小的一個緩衝區。增加這值加速order by或group by操作。默認數值是2097144(2m),我把它改為 16777208 (16m)。

(7)、table_cache:

為所有線程打開表的數量。增加該值能增加mysqld要求的文件描述符的數量。mysql對每個唯一打開的表需要2個文件描述符。默認數值是64,我把它改為512。

(8)、thread_cache_size:

可以復用的保存在中的線程的數量。如果有,新的線程從緩存中取得,當斷開連接的時候如果有空間,客戶的線置在緩存中。如果有很多新的線程,為了提高性能可以這個變數值。通過比較 connections 和 threads_created 狀態的變數,可以看到這個變數的作用。我把它設置為 80。

(9)mysql的搜索功能

用mysql進行搜索,目的是能不分大小寫,又能用中文進行搜索

只需起動mysqld時指定 –default-character-set=gb2312

(10)、wait_timeout:

伺服器在關閉它之前在一個連接上等待行動的秒數。 默認數值是28800,我把它改為7200。

註:參數的調整可以通過修改 /etc/my.cnf 文件並重啟 mysql 實現。這是一個比較謹慎的工作,上面的結果也僅僅是我的一些看法,你可以根據你自己主機的硬體情況(特別是內存大小)進一步修改。

mysql資料庫大小限制

MySQL 限制的表大小為4GB。由於在MySQL 中使用了MyISAM 存儲引擎,最大表尺寸增加到了65536TB(2567 – 1位元組)。由於允許的表尺寸更大,MySQL資料庫的最大有效表尺寸通常是由操作系統對文件大小的限制決定的,而不是由MySQL內部限制決定的。

InnoDB 存儲引擎將InnoDB 表保存在一個表空間內,該表空間可由數個文件創建。這樣,表的大小就能超過單獨文件的最大容量。表空間可包括原始磁碟分區,從而使得很大的表成為可能。表空間的最大容量為64TB。

mysql 一張表最大的存儲空間是多大

在老版本的MySQL 3.22中,MySQL的單表限大小為4GB,當時的MySQL的存儲引擎還是ISAM存儲引擎。但是,當出現MyISAM存儲引擎之後,也就是從MySQL 3.23開始,MySQL單表最大限制就已經擴大到了64PB了(官方文檔顯示)。也就是說,從目前的技術環境來看,MySQL資料庫的MyISAM存儲 引擎單表大小限制已經不是有MySQL資料庫本身來決定,而是由所在主機的OS上面的文件系統來決定了。

mysql數據文件大小問題

MYSQL裡面沒有限制文件大小的語句,但是事實上你的文件是有大小限制的--受操作系統的限制,比如32位操作系統單個文件有2G大小的限制。

你無法插入數據,要看具體的情況,除了上面說的文件大小超過2G,主要有一下兩種可能:

一是插入的數據在唯一索引或者主鍵欄位上有重複。看看錶有那些索引,如果插入數據和以前的有重複當然就會失敗,刪除以前的數據當然就能插入了。這種情況下,插入數據的時候會報告相應的錯誤,錯誤詳細信息有說明是哪個欄位上的所有有重複。

二是數據表損壞,特別是假如你說你的表根本沒有索引的時候,那麼損壞的可能性就相當的大。這種情況下數據表可能是只讀狀態,也甚至可能是根本無法打開,插入失敗的時候可能會報告數據表被別的進程佔用。處理的方法是用MYSQL的系統工具進行修復,比如MYISAMCHK。

mysql 資料庫可以有多大

MySQL 3.22 限制的表大小為4GB。由於在MySQL 3.23 中使用了MyISAM 存儲引擎,最大表尺寸增加到了65536TB(2567 – 1位元組)。由於允許的表尺寸更大,MySQL資料庫的最大有效表尺寸通常是由操作系統對文件大小的限制決定的,而不是由MySQL內部限制決定的。

InnoDB 存儲引擎將InnoDB 表保存在一個表空間內,該表空間可由數個文件創建。這樣,表的大小就能超過單獨文件的最大容量。表空間可包括原始磁碟分區,從而使得很大的表成為可能。表空間的最大容量為64TB。

擴展資料

據D.V.B 團隊以及Cmshelp 團隊做CMS 系統評測時的結果來看,MySQL單表大約在2千萬條記錄(4G)下能夠良好運行,經過資料庫的優化後5千萬條記錄(10G)下運行良好。

這對於MySQL是不公平的,那些CMS廠商非但沒有把內核做好反而還在添加很多花哨的功能,最終導致其產品自身負載過低。

他們並沒有針對自身負載效果作出相應的資料庫優化方案及標準,而是繼續保留著複雜的結構造成對MySQL的資源無休止的浪費,最終導致了其負載上的缺陷。

於是他們便充分發揮中國人的傳統優勢——變通:避重就輕的採用了所謂的分表式存儲,雖然在一定程度上緩解了自身負載的缺陷,但是導致了網站後期維護以及資源上的浪費。

用一個不恰當的比喻來形容,MySQL中的的表就像一塊地,單表就相當於利用這塊地蓋高層建築充分利用達到高人員負載,但分表就相當於用這塊地蓋了一間平房。

如果為了達到高人員負載的話那就需要另開地皮達到目的,但是我們要思考,是地不夠,還是他的能力不夠,如此做法讓人感到資源的浪費以及規劃的嚴重缺陷。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/258481.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:50
下一篇 2024-12-15 12:50

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • Akka 設置郵箱大小的方法和注意事項

    為了保障系統的穩定性和可靠性,Akka 允許用戶設置郵箱大小。本文將介紹如何在 Akka 中設置郵箱大小,並且提供一些注意事項,以幫助讀者解決可能遇到的問題。 一、設置郵箱大小 A…

    編程 2025-04-28
  • leveldb和unqlite:兩個高性能的資料庫存儲引擎

    本文將介紹兩款高性能的資料庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入資料庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的資料庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28

發表回復

登錄後才能評論