3 回答

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

TA貢獻1824條經驗 獲得超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>'; } ?>
添加回答
舉報