Wordpress共有10個(gè)表,按照功能大致分為四類。
為廈門等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及廈門網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、廈門網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
user: 用戶信息,包括wp_users表和wp_usermeta表。
post: 文章及評論信息,包括wp_posts、wp_postmeta、wp_comments、wp_post2cat以及wp_categories五個(gè)表。
link: 鏈接信息,包括wp_links表和wp_linkcategories表。
option: 全局設(shè)置信息,包括wp_options表。
個(gè)人認(rèn)為這個(gè)數(shù)據(jù)庫有兩個(gè)冗余的地方。一個(gè)是wp_post2cat表中的主鍵rel_id,其實(shí)可以不要rel_id,而使用post_id和category_id兩列作為主鍵;另一個(gè)是wp_options表,option_id列為自動(dòng)增長列,僅使用該列即可作為主鍵,而不需要option_id、blog_id、option_name三列聯(lián)合做主鍵。
另外,表的命名規(guī)則也很有意思?;疽?guī)則總結(jié)如下:
保存對象的基本屬性,命名為 wp_objects,使用復(fù)數(shù)(如 wp_posts,wp_comments);
保存對象的擴(kuò)展屬性,命名為 wp_objectmeta,使用單數(shù)(如wp_postmeta,wp_usermeta);
多對多關(guān)系,命名為 wp_a2b,其中a和b分別為多對多關(guān)系兩端的對象名的縮寫(如wp_post2cat)。
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應(yīng)用軟件。“總是在災(zāi)難發(fā)生后,才想起容災(zāi)的重要性??偸窃诔赃^虧后,才記得曾經(jīng)有人提醒過?!?,所以此處列出一些MySQL的必要的優(yōu)化和建議。
1. 核心類
? 不在數(shù)據(jù)庫做計(jì)算,cpu計(jì)算務(wù)必移至業(yè)務(wù)層;
? 控制單表數(shù)據(jù)量,單表記錄控制在千萬級;
? 控制列數(shù)量,字段數(shù)控制在20以內(nèi);
? 平衡范式與冗余,為提高效率可以犧牲范式設(shè)計(jì),冗余數(shù)據(jù);
? 拒絕3B(big),大sql,大事務(wù),大批量;
2. 字段類
? 用好數(shù)值類型
tinyint(1Byte)
smallint(2Byte)
mediumint(3Byte)
int(4Byte)
bigint(8Byte)
bad case:int(1)/int(11)
? 有些字符轉(zhuǎn)化為數(shù)字
例如:用int而不是char(15)存儲ip
? 優(yōu)先使用enum或set
例如:sex enum (‘F’, ‘M’)
? 避免使用NULL字段
NULL字段很難查詢優(yōu)化
NULL字段的索引需要額外空間
NULL字段的復(fù)合索引無效
bad case:
name char(32) default null
age int not null
good case:
age int not null default 0
? 不在數(shù)據(jù)庫里存圖片
3. 索引類
? 謹(jǐn)慎合理使用索引
改善查詢、減慢更新
索引一定不是越多越好(能不加就不加,要加的一定得加)
覆蓋記錄條數(shù)過多不適合建索引,例如“性別”
? 字符字段必須建前綴索引
? 不在索引做列運(yùn)算
bad case:
select id where age +1 = 10;
? innodb 主鍵合理使用自增列
主鍵建立聚簇索引
主鍵不應(yīng)該被修改
字符串不應(yīng)該做主鍵
如果不指定主鍵,innodb會(huì)使用唯一且非空值索引代替
? 不用外鍵,請由程序保證約束
4. sql類
? sql語句盡可能簡單
一條sql只能在一個(gè)cpu運(yùn)算
大語句拆小語句,減少鎖時(shí)間
一條大sql可以堵死整個(gè)庫
? 簡單的事務(wù)
事務(wù)時(shí)間盡可能短
bad case:
上傳圖片事務(wù)
? 避免使用觸發(fā)器,用戶自定義函數(shù),請由程序取而代之
? 不用select *
消耗cpu,io,內(nèi)存,帶寬
這種程序不具有擴(kuò)展性
? OR改寫為IN()
? OR改寫為UNION
PS:最新的mysql內(nèi)核已經(jīng)進(jìn)行了相關(guān)優(yōu)化
? limit高效分頁
limit越大,效率越低
select id from t limit 10000, 10;
應(yīng)該改為 =
select id from t where id 10000 limit 10;
? 使用union all替代union,union有去重開銷
? 盡量不用連接join
? 務(wù)必請使用“同類型”進(jìn)行比較,否則可能全表掃面
? 打散批量更新
? 使用新能分析工具
show profile;
mysqlsla;
mysqldumpslow;
explain;
show slow log;
show processlist;
show query_response_time(percona)
RDS是阿里云提供的即開即用的關(guān)系型數(shù)據(jù)庫服務(wù),兼容了MySQL和SQL Server兩種數(shù)據(jù)庫引擎。在傳統(tǒng)數(shù)據(jù)庫的基礎(chǔ)上,阿里云RDS提供了強(qiáng)大豐富的功能從而保證了高可用性、高安全性以及高性能。此外,RDS還提供了諸多便利功能提升了RDS的易用性。
★高可用:
采用主從熱備的架構(gòu)。主機(jī)down機(jī)或者出現(xiàn)故障后,備機(jī)秒級完成無縫切換,服務(wù)可用性承諾:99.95%
提供自動(dòng)多重備份的機(jī)制。用戶可以自行選擇備份周期,也可以根據(jù)自身業(yè)務(wù)特點(diǎn)隨時(shí)進(jìn)行臨時(shí)備份,數(shù)據(jù)可靠性承諾:99.9999%
數(shù)據(jù)回溯到任意時(shí)間點(diǎn)。用戶可以選擇7天內(nèi)的任意時(shí)間點(diǎn)創(chuàng)建一個(gè)臨時(shí)實(shí)例,臨時(shí)實(shí)例生成后驗(yàn)證數(shù)據(jù)無誤,即可將數(shù)據(jù)遷移到RDS實(shí)例,從而完成數(shù)據(jù)回溯操作。
★高安全
提供白名單訪問策略??勺孕性O(shè)置允許訪問的IP及IP段,有效防止黑客掃描端口進(jìn)行服務(wù)器攻擊。
提供閾值報(bào)警的功能。支持實(shí)例鎖定報(bào)警、連接數(shù)報(bào)警、IOPS報(bào)警、磁盤空間使用報(bào)警、CPU報(bào)警等。
提供SQL注入告警。將對發(fā)往RDS的疑似SQL注入的語句進(jìn)行記錄并展示,供用戶進(jìn)行程序調(diào)整,杜絕SQL注入的發(fā)生。
SQL審計(jì)。記錄所有發(fā)往RDS的SQL語句,系統(tǒng)將記錄SQL語句相關(guān)的連接IP、訪問數(shù)據(jù)庫的名稱、執(zhí)行語句的賬號、執(zhí)行時(shí)間、返回記錄數(shù)等信息。供用戶對RDS安全性進(jìn)行排查。
控制臺操作日志。記錄所有在控制臺上進(jìn)行的修改類操作,便于管理員查看并管理RDS。
★高性能
RDS使用高端服務(wù)器來保障每個(gè)數(shù)據(jù)庫都擁有良好的性能。
針對MySQL類型的RDS,數(shù)據(jù)庫版本融合了阿里巴巴官方數(shù)據(jù)庫補(bǔ)丁,有效的提升了RDS的性能。
性能監(jiān)控。提供多種監(jiān)控圖方便用戶跟蹤RDS的性能狀況。如IOPS、連接數(shù)、磁盤使用空間、CPU利用率、QPS\TPS、網(wǎng)絡(luò)流量以及多種數(shù)據(jù)庫的內(nèi)部監(jiān)控指標(biāo)圖
慢SQL匯總分析。將數(shù)據(jù)庫中的慢SQL進(jìn)行相似語句去重,按照指定方式排序后進(jìn)行展示,為用戶排查慢SQL優(yōu)化數(shù)據(jù)庫性能提供幫助。
優(yōu)化建議。提供多種優(yōu)化建議方便用戶優(yōu)化數(shù)據(jù)庫性能,如:存儲引擎檢查、大表檢查、無主鍵檢查、索引過多表檢查、缺失索引檢查等
★易用性:
提供向?qū)竭w移服務(wù),使用戶能夠通過WEB端管理控制臺輕松將自建數(shù)據(jù)庫遷移至RDS。
快捷查看數(shù)據(jù)庫系統(tǒng)日志,用戶能夠RDS管理控制臺查看數(shù)據(jù)庫級別的系統(tǒng)日志。
便捷操作數(shù)據(jù)庫實(shí)例。提供完善的WEB端管理控制臺,幫助用戶操作數(shù)據(jù)庫實(shí)例,如重啟實(shí)例、刪除BINLOG、備份等等。
輕松升級,按量付費(fèi)。RDS提供實(shí)例配置和數(shù)據(jù)庫版本的在線升級服務(wù),隨開隨用,按量付費(fèi),資源業(yè)務(wù)輕松拓展。
獲取訪客的IP(后期可用來獲取地理位置)
獲取訪客的地理位置(通過IP獲?。?/p>
獲取訪客的訪問次數(shù)
獲取訪客的訪問時(shí)間
獲取訪客訪問的網(wǎng)頁
獲取訪客訪問的網(wǎng)頁的標(biāo)題
表名: my_count
字段:
id(int 10,主鍵,自增),
ip(varchar 20用來存儲訪客的IP地址),
country(varchar 20用來存儲訪客的國籍),
region(varchar 20用來存儲訪客的省份),
adress(varchar 20用來存儲訪客的所在城市),
time(int 10用來存儲訪客的訪問次數(shù)),
date(datetime 6用來存儲訪客的訪問時(shí)間),
url(varchar 30用來存儲訪客訪問的網(wǎng)頁),
page_url(varchar 100用來存儲訪客訪問的網(wǎng)頁的標(biāo)題)
在/網(wǎng)站目錄/wp-content/themes/主題名 下創(chuàng)建PHP文件visitorstatistics.php:
打開footer.php,在結(jié)尾插入:
完了之后點(diǎn)擊下方的更新按鈕。打開網(wǎng)頁,會(huì)看到下方出現(xiàn)文字:“您是第xxx 位訪客,這是您的第 xxx 次訪問,感謝您的支持和關(guān)注!?”
參數(shù):
$slug (必須) 通用的模板名
(字符串)要引入的模板的文件名,不包括后綴名 .php,也就是如果需要引入當(dāng)前主題根目錄的 loop.php 文件 $slug 填寫 “l(fā)oop” 即可。
$name(可選) 指定的模板名
(字符串)要引入的模板的文件的副文件名,如果要引入當(dāng)前主題根目錄的 loop-img.php 文件 $slug 參數(shù)填寫 “l(fā)oop”,$name 參數(shù)填寫 “img”。
淘寶的接口,用來返回ip地址對應(yīng)的地理信息,返回實(shí)例:
{"code":0,"data":{"ip":"101.132.162.76","country":"中國","area":"","region":"上海","city":"上海","county":"XX","isp":"阿里云","country_id":"CN","area_id":"","region_id":"310000","city_id":"310100","county_id":"xx","isp_id":"1000323"}}
原文鏈接: 給網(wǎng)站添加數(shù)據(jù)統(tǒng)計(jì)(wordpress實(shí)戰(zhàn))
歡迎訪問作者網(wǎng)站: