3 回答

TA貢獻1862條經(jīng)驗 獲得超6個贊
在老版本的MySQL 3.22中,MySQL的單表限大小為4GB,當時的MySQL的存儲引擎還是ISAM存儲引擎。但是,當出現(xiàn)MyISAM存儲引擎之后,也就是從MySQL 3.23開始,MySQL單表最大限制就已經(jīng)擴大到了64PB了(官方文檔顯示)。也就是說,從目前的技術(shù)環(huán)境來看,MySQL數(shù)據(jù)庫的MyISAM存儲 引擎單表大小限制已經(jīng)不是有MySQL數(shù)據(jù)庫本身來決定,而是由所在主機的OS上面的文件系統(tǒng)來決定了。
而MySQL另外一個最流行的存儲引擎之一Innodb存儲數(shù)據(jù)的策略是分為兩種的,一種是共享表空間存儲方式,還有一種是獨享表空間存儲方式。
當使用共享表空間存儲方式的時候,Innodb的所有數(shù)據(jù)保存在一個單獨的表空間里面,而這個表空間可以由很多個文件組成,一個表可以跨多個文件存在,所 以其大小限制不再是文件大小的限制,而是其自身的限制。從Innodb的官方文檔中可以看到,其表空間的最大限制為64TB,也就是說,Innodb的單 表限制基本上也在64TB左右了,當然這個大小是包括這個表的所有索引等其他相關(guān)數(shù)據(jù)。
而當使用獨享表空間來存放Innodb的表的時候,每個表的數(shù)據(jù)以一個單獨的文件來存放,這個時候的單表限制,又變成文件系統(tǒng)的大小限制了。

TA貢獻1824條經(jīng)驗 獲得超6個贊
<?php$db = new PDO('mysql:host=localhost;dbname=t1', 'root', '',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));$rs = $db -> prepare("select * from `stu`;");$rs -> execute();$list = $rs -> fetchAll(PDO::FETCH_ASSOC);?>
<html><head> <style type="text/css"> li{list-style: none;display: block;float: left;} ul{both:clear;} </style></head><body><div> <ul> <li>學號</li> <li>姓名</li> <li>年齡</li> </ul> <ul> <?php foreach($list as $v){ echo '<li>'.$v['id'].'</li>'; echo '<li>'.$v['name'],'</li>'; echo '<li>'.$v['num'].'</li>'; echo '<li><a href="1.php?id='.$v['id'].'">編輯</a></li>'; } ?>
添加回答
舉報