A. mysql 單個表可以儲存多少數據
以下是摘抄mysql中文手冊的解釋:
MySQL 3.22限制的表大小為4GB。由於在MySQL 3.23中使用了MyISAM存儲引擎,最大表尺寸增加到了65536TB(2567 – 1位元組)。由於允許的表尺寸更大,MySQL資料庫的最大有效表尺寸通常是由操作系統對文件大小的限制決定的,而不是由MySQL內部限制決定的。
InnoDB存儲引擎將InnoDB表保存在一個表空間內,該表空間可由數個文件創建。這樣,表的大小就能超過單獨文件的最大容量。表空間可包括原始磁碟分區,從而使得很大的表成為可能。表空間的最大容量為64TB。
在下面的表格中,列出了一些關於操作系統文件大小限制的示例。這僅是初步指南,並不是最終的。要想了解最新信息,請參閱關於操作系統的文檔。
操作系統
文件大小限制
linux 2.2-Intel 32-bit
2GB (LFS: 4GB)
Linux 2.4+
(using ext3 filesystem) 4TB
Solaris 9/10
16TB
NetWare w/NSS filesystem
8TB
win32 w/ FAT/FAT32
2GB/4GB
win32 w/ NTFS
2TB(可能更大)
MacOS X w/ HFS+
2TB
B. sql server 單個表中最大多少條記錄
SQLSERVER中一張表最大記錄數是沒有限制的,不過會受物理存儲空間的限制。解決方法如下:
1、首先在電腦中打開sql server 可視化工具。
C. access資料庫單表最大可以有多少行
Access存儲的記錄跟行數無關,每個表最多可存儲2G的數據。但基本上超過100萬以上的數據,Access就會比較吃力,建議改換其他關系型資料庫軟體。
Access簡介:
Microsoft Office Access是由微軟發布的關系資料庫管理系統。它結合了 MicrosoftJet Database Engine 和圖形用戶界面兩項特點,是 Microsoft Office 的系統程序之一。
Microsoft Office Access是微軟把資料庫引擎的圖形用戶界面和軟體開發工具結合在一起的一個資料庫管理系統。它是微軟OFFICE的一個成員, 在包括專業版和更高版本的office版本裡面被單獨出售。2012年12月4日,最新的微軟Office Access 2013在微軟Office 2013里發布,微軟Office Access 2010 是前一個版本。
MS ACCESS以它自己的格式將數據存儲在基於Access Jet的資料庫引擎里。它還可以直接導入或者鏈接數據(這些數據存儲在其他應用程序和資料庫)。
軟體開發人員和數據架構師可以使用Microsoft Access開發應用軟體,「高級用戶」可以使用它來構建軟體應用程序。和其他辦公應用程序一樣,ACCESS支持Visual Basic宏語言,它是一個面向對象的編程語言,可以引用各種對象,包括DAO(數據訪問對象),ActiveX數據對象,以及許多其他的ActiveX組件。可視對象用於顯示表和報表,他們的方法和屬性是在VBA編程環境下,VBA代碼模塊可以聲明和調用Windows操作系統函數。
D. oracle單個資料庫文件最大是多少
1、64位linux 和64位oracle,默認oracle表空間數據文件用的BLOCKSIZE是8k,表空間數據文件最大是32G。x0dx0aSQL>show parameter k_cache_sizex0dx0a查看資料庫默認的塊大小x0dx0aSQL> show parameter db_block_sizex0dx0adb_block_size integer 8192x0dx0a2、為了讓一個表空間數據文件存64G,你需要告訴oracle用BLOCKSIZE 是16kx0dx0aCREATE TABLESPACE TEST DATAFILE 『/data1/test_ts1.dbf』 SIZE 512M AUTOEXTEND ON NEXT 256M MAXSIZE UNLIMITED BLOCKSIZE 16k;x0dx0a提前需要設置db_16k_cache_sizex0dx0aalter system set db_16k_cache_size=16M scope=both;x0dx0a否則會報錯ORA-29339:x0dx0atablespace block size 16384 does not match configured block sizesx0dx0a3、為了讓一個表空間數據文件存128G,你需要告訴oracle用BLOCKSIZE 是32kx0dx0a4、32位linux 和32位oracle,默認oracle表空間datafile用的BLOCKSIZE也是8k,表空間數據文件最大也是32G。試了一下64G文件,也沒有問題。
E. MS SQL資料庫單文件最大是多少
資料庫與備份文件根據「存儲設備」大小而限制。至於3G的文件並不算大,運行的快慢要看SQL編寫精練與機器性能決定。單個表最好不要超過100萬行。有必要時可以收縮一下資料庫。對於單表數據過大可備份後清除早期不用的數據。
F. 為什麼說MySQL單表數據不要超過500萬行
今天,探討一個有趣的話題:MySQL 單表數據達到多少時才需要考慮分庫分表?有人說 2000 萬行,也有人說 500 萬行。那麼,你覺得這個數值多少才合適呢?
曾經在中國互聯網技術圈廣為流傳著這么一個說法:MySQL 單表數據量大於 2000 萬行,性能會明顯下降。事實上,這個傳聞據說最早起源於網路。具體情況大概是這樣的,當年的 DBA 測試 MySQL性能時發現,當單表的量在 2000 萬行量級的時候,SQL 操作的性能急劇下降,因此,結論由此而來。然後又據說網路的工程師流動到業界的其它公司,也帶去了這個信息,所以,就在業界流傳開這么一個說法。
再後來,阿里巴巴《Java 開發手冊》提出單錶行數超過 500 萬行或者單表容量超過 2GB,才推薦進行分庫分表。對此,有阿里的黃金鐵律支撐,所以,很多人設計大數據存儲時,多會以此為標准,進行分表操作。
那麼,你覺得這個數值多少才合適呢?為什麼不是 300 萬行,或者是 800 萬行,而是 500 萬行?也許你會說這個可能就是阿里的最佳實戰的數值吧?那麼,問題又來了,這個數值是如何評估出來的呢?稍等片刻,請你小小思考一會兒。
事實上,這個數值和實際記錄的條數無關,而與 MySQL 的配置以及機器的硬體有關。因為,MySQL 為了提高性能,會將表的索引裝載到內存中。InnoDB buffer size 足夠的情況下,其能完成全載入進內存,查詢不會有問題。但是,當單表資料庫到達某個量級的上限時,導致內存無法存儲其索引,使得之後的 SQL 查詢會產生磁碟 IO,從而導致性能下降。當然,這個還有具體的表結構的設計有關,最終導致的問題都是內存限制。這里,增加硬體配置,可能會帶來立竿見影的性能提升哈。
那麼,我對於分庫分表的觀點是,需要結合實際需求,不宜過度設計,在項目一開始不採用分庫與分表設計,而是隨著業務的增長,在無法繼續優化的情況下,再考慮分庫與分表提高系統的性能。對此,阿里巴巴《Java 開發手冊》補充到:如果預計三年後的數據量根本達不到這個級別,請不要在創建表時就分庫分表。那麼,回到一開始的問題,你覺得這個數值多少才合適呢?我的建議是,根據自身的機器的情況綜合評估,如果心裡沒有標准,那麼暫時以 500 萬行作為一個統一的標准,相對而言算是一個比較折中的數值。
我們再來看一下關於SQL書寫的一些注意點,會給大家帶來幫助
sql的編寫需要注意優化
使用limit對查詢結果的記錄進行限定
避免select *,將需要查找的欄位列出來
使用連接(join)來代替子查詢
拆分大的delete或insert語句
可通過開啟慢查詢日誌來找出較慢的SQL
不做列運算:SELECT id WHERE age + 1 = 10,任何對列的操作都將導致表掃描,它包括資料庫教程函數、計算表達式等等,查詢時要盡可能將操作移至等號右邊
sql語句盡可能簡單:一條sql只能在一個cpu運算;大語句拆小語句,減少鎖時間;一條大sql可以堵死整個庫
OR改寫成IN:OR的效率是n級別,IN的效率是log(n)級別,in的個數建議控制在200以內
不用函數和觸發器,在應用程序實現
避免%xxx式查詢
少用JOIN
使用同類型進行比較,比如用飓'和飓'比,123和123比
盡量避免在WHERE子句中使用!=或<>操作符,否則將引擎放棄使用索引而進行全表掃描
對於連續數值,使用BETWEEN不用IN:SELECT id FROM t WHERE num BETWEEN 1 AND 5
列表數據不要拿全表,要使用LIMIT來分頁,每頁數量也不要太大
您可能感興趣的文章:MySQL使用全庫備份數據恢復單表數據的方法
G. access資料庫單表最大記錄數是多少
1,249,806
H. 急,MYSQL有單表最大數據量限制
「在mysql中,每個數據抄庫最多可創建襲20億個表,一個表允許定義1024列,每行的最大長度為8092位元組(不包括文本和圖像類型的長度)。當表中定義有varchar、nvarchar或varbinary類型列時,如果向表中插入的數據行超過8092位元組時將導致Transact-SQL語句失敗...」