mysql的程序一共幾十兆。跟其他數(shù)據(jù)庫一樣,需要占有多少空間要看數(shù)據(jù)庫內(nèi)容的大小。
創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括建昌網(wǎng)站建設(shè)、建昌網(wǎng)站制作、建昌網(wǎng)頁制作以及建昌網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,建昌網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到建昌省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
如果想知道MySQL數(shù)據(jù)庫中每個(gè)表占用的空間、表記錄的行數(shù)的話,可以打開MySQL的 information_schema 數(shù)據(jù)庫。在該庫中有一個(gè) TABLES 表,這個(gè)表主要字段分別是:
TABLE_SCHEMA : 數(shù)據(jù)庫名
TABLE_NAME:表名
ENGINE:所使用的存儲引擎
TABLES_ROWS:記錄數(shù)
DATA_LENGTH:數(shù)據(jù)大小
INDEX_LENGTH:索引大小
所以要知道一個(gè)表占用空間的大小,那就相當(dāng)于是 數(shù)據(jù)大小 + 索引大小 即可。
在涉及LBS的服務(wù)開發(fā)過程中,經(jīng)常需要存儲地理空間的位置并進(jìn)行一定計(jì)算(附近商家等需求),本文主要介紹mysql對于LBS的支持。
Mysql的空間擴(kuò)展主要提供一下幾個(gè)方面的功能:
其中前兩點(diǎn)對InnoDB,MyISAM,NDB,ARCHIVE等mysql存儲引擎都支持,第三點(diǎn)只有對InnoDB和MyISAM的支持,由于InnoDB的支持行鎖以及事務(wù)的特性,現(xiàn)在基本上已經(jīng)是默認(rèn)存儲引擎了,所以本文以下內(nèi)容都默認(rèn)使用InnoDB。
創(chuàng)建空間列以及空間索引的語句如下:
Mysql的空間數(shù)據(jù)類型與OpenGIS的數(shù)據(jù)類型相對應(yīng)。
Mysql的空間數(shù)據(jù)有不同表示格式,其中咱能看懂的也就第一種
因?yàn)樯衔奶岬搅薙RID,這里說下什么是SRID,SR是指Spatial Reference,也就是我們常說的空間參考系,mysql支持卡迪爾坐標(biāo)系和地理坐標(biāo)系,其中地理坐標(biāo)系又有好多種,下面說幾種常用的空間參考系
Mysql的所有空間坐標(biāo)系都存在表 mysql.st_spatial_reference_system 中,這個(gè)表是隱藏的,看不見的,但是你可以通過 infomation_shcema.st_spatial_reference_system 中查看參考系的信息,這個(gè)表就是 mysql.st_spatial_reference_system 的一個(gè)視圖的實(shí)現(xiàn)。
mysql的空間索引的數(shù)據(jù)結(jié)構(gòu)是R樹,R樹實(shí)際上就是多維的B樹,B樹的數(shù)據(jù)結(jié)構(gòu)在我的另一篇博客中有介紹,這里就不展開了,說幾點(diǎn)在應(yīng)用的時(shí)候需要注意的。
最后轉(zhuǎn)一篇博文
數(shù)值類型包含: int tinyint bigint float decimal
int 大整型(占 4 個(gè)字節(jié)的存儲空間)
tinyint 微小整型(占 1 個(gè)字節(jié)的存儲空間)
bigint 極大整型(占 8 個(gè)字節(jié)的存儲空間)
float 占4個(gè)字節(jié),最多顯示7個(gè)有效位。常用于成績。
float(5,2)取值范圍:
decimal 最多可以顯示 28 個(gè)有效位
存儲空間計(jì)算:整數(shù)部分和小數(shù)部分分開存儲,將 9 的倍數(shù)包裝成 4 個(gè)字節(jié),余數(shù)占用的字節(jié)數(shù)如下:
decimal 的整數(shù)位和小數(shù)位模9的余數(shù)和字節(jié)對照表
例如: decimal(19,9)
整數(shù)部分:
小數(shù)部分:
char 定長:當(dāng)列中存儲的字符串達(dá)不到最大長度時(shí),使用空格進(jìn)行補(bǔ)足。
varchar 變長
char 浪費(fèi)存儲空間,但性能高。 varchar 節(jié)約存儲空間,但存儲性能低。
text / longtext(4G)
數(shù)值類型寬度為顯示寬度,和占用存儲空間大小無關(guān);字符類型的寬度,超過則無法存儲:
對于枚舉類型的字段,字段值只能在列舉的范圍內(nèi)選擇。
日期時(shí)間類型: date time datetime timestamp
date 日期:
time 時(shí)間:
datetime 日期時(shí)間:
timestamp 日期時(shí)間:
日期時(shí)間函數(shù): NOW() CURDATE() CURTIME()
NOW() 返回服務(wù)器當(dāng)前的時(shí)間:
CURDATE() 返回當(dāng)前日期:
CURTIME() 返回當(dāng)前時(shí)間:
插入日期時(shí)間:
語法格式:
示例:
查詢1天以內(nèi)的記錄:
查詢2年前至今年的記錄:
表空間大?。?dms數(shù)據(jù)庫管理表空間的大小為 pagesize * 所有容器大小總和; sms系統(tǒng)管理表空間的最大空間可以理解成 “容器路徑” 所在文件系統(tǒng)的大小
緩沖池大?。?就是 創(chuàng)建語句中的 size*pagesize~
mysql的數(shù)據(jù)包括你說的10G那個(gè)數(shù)據(jù),還有你平時(shí)操作的日志記錄那些的存儲,實(shí)際上會有兩個(gè)文件占用,而不僅僅是只有表里的數(shù)據(jù),這樣就不難理解了,例如,你表里只有1k的數(shù)據(jù)量,但你經(jīng)過復(fù)雜的修改等一系列操作后,整個(gè)數(shù)據(jù)庫的占用肯定比這1k要多的多。
查看mysql數(shù)據(jù)庫大小的四種辦法,分別有以下四種:
第一種:進(jìn)去指定schema 數(shù)據(jù)庫(存放了其他的數(shù)據(jù)庫的信息)
use information_schema
第二種:查詢所有數(shù)據(jù)的大小
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES()
第三種:查看指定數(shù)據(jù)庫的大小,比如說:數(shù)據(jù)庫apoyl
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES where table_schema='apoyl';
第四種:查看指定數(shù)據(jù)庫的表的大小,比如說:數(shù)據(jù)庫apoyl 中apoyl_test表
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES where table_schema='apoyl' and table_name='apoyl_test';