Time of Update: 2017-01-18
本文執行個體總結了MySQL資料庫最佳化技術的索引用法。分享給大家供大家參考,具體如下:這裡緊接上一篇《MySQL資料庫最佳化技術之配置技巧總結》,進一步分析索引最佳化的技巧:(七)表的最佳化1. 選擇合適的資料引擎MyISAM:適用於大量的讀操作的表InnoDB:適用於大量的寫讀作的表2.選擇合適的列類型使用 SELECT * FROM TB_TEST PROCEDURE ANALYSE()可以對這個表的每一個欄位進行分析,給出最佳化列類型建議3.對於不儲存NULL值的列使用NOT NULL,
Time of Update: 2017-01-18
本文執行個體講述了MySQL資料庫最佳化技術的配置方法。分享給大家供大家參考,具體如下:(一)減少資料庫訪問對於可以靜態化的頁面,儘可能靜態化對一個動態網頁面中可以靜態局部,採用靜態化部分資料可以產生XML,或者文字檔形式儲存使用資料緩衝技術,例如: MemCached(二)最佳化的檢測方法1.使用者體驗檢測2.Mysql狀態檢測在Mysql命令列裡面使用show status命令,得到當前mysql狀態。主要關注下列屬性:key_read_requests
Time of Update: 2017-01-18
本文執行個體分析了MySQL索引用法。分享給大家供大家參考,具體如下:MYSQL描述:一個文章庫,裡面有兩個表:category和article。category裡面有10條分類資料。article裡面有20萬條。article裡面有一個"article_category"欄位是與category裡的"category_id"欄位相對應的。article表裡面已經把 article_category字義為了索引。資料庫大小為1.3G。問題描述:執行一個很普通的查詢:複製代碼
Time of Update: 2017-01-18
MySQL“自古以來”都有一個神秘的HANDLER命令,而此命令非SQL標準文法,可以降低最佳化器對於SQL語句的解析與最佳化開銷,從而提升查詢效能。看到這裡,可能有小夥伴不淡定了,這麼好的東西為啥沒廣泛使用呢?這不是與幾年前很夯的handlersocket外掛程式類似嗎?那麼,我們先來看看Handler文法說明:HANDLER tbl_name OPEN [ [AS] alias]HANDLER tbl_name READ index_name { = | <= | >= |
Time of Update: 2017-01-18
Inside君整理了一份最新基於MySQL 5.6和5.7的設定檔範本,基本上可以說覆蓋90%的調優選項,使用者只需根據自己的伺服器配置稍作修改即可,如InnoDB緩衝池的大小、IO能力(innodb_buffer_pool_size,innodb_io_capacity)。特別注意,這份設定檔不用修改,可以直接運行在MySQL
Time of Update: 2017-01-18
最近經常有收到MySQL執行個體類似記憶體不足的警示資訊,登陸到伺服器上一看發現MySQL 吃掉了99%的記憶體,God !有時候沒有及時處理,核心就會自己幫我們重啟下MySQL,然後我們就可以看到 dmesg 資訊有如下記錄:Mar 9 11:29:16 xxxxxx kernel: mysqld invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0Mar 9 11:29:16 xxxxxx
Time of Update: 2017-01-18
前面兩章,我們分析了Linux記憶體配置的策略以及Linux通過使用
Time of Update: 2017-01-18
這裡就涉及到一個問題,到底Kill掉誰呢?一般稍微瞭解一些Linux核心的同學第一反應是誰用的最多,就Kill掉誰。這當然是Linux核心首先考慮的一種重要因素,但是也不完全是這樣的,我們查一些Linux的核心方面的資料,可以知道其實Kill誰是由/proc/<pid>/oom_score來決定的,這個值每個進程一個,是由Linux核心的oom_badness()函數負責計算的。那下面我們來仔細讀一讀badness()函數。 在badness()函數的注釋部分,
Time of Update: 2017-01-18
RDS(網易雲關聯式資料庫服務)上線已經有一段時間,陸續不斷有產品遷入到了RDS中,線上上營運的過程中,也遇到了一些曾經沒有考慮到,或者考慮的不全的東西。後續有時間可以分享給大家。今天想提到的是線上一個4G的RDS執行個體,發生了OOM(out of memory)的問題,MySQL進程被直接Kill掉了。在解釋這個問題的時候,我們首先需要從Linux系統記憶體配置策略講起。
Time of Update: 2017-01-18
資料存放區演化思路一:單庫單表單庫單表是最常見的資料庫設計,例如,有一張使用者(user)表放在資料庫db中,所有的使用者都可以在db庫中的user表中查到。資料存放區演化思路二:單庫多表隨著使用者數量的增加,user表的資料量會越來越大,當資料量達到一定程度的時候對user表的查詢會漸漸的變慢,從而影響整個DB的效能。如果使用mysql,
Time of Update: 2017-01-18
背景:我們在做資料移轉或者拆分的時候,使用Tablespace transcation 這種解決方案時,很有可能就會遇到 從庫複製出錯,報: Last_SQL_Errno: 1146那麼具體錯誤內容可能會有如下:Last_SQL_Error: Error 'Table 'spider.tb_city_population_rank' doesn't exist' on query. Default database: 'spider'. Query: 'alter table
Time of Update: 2017-01-18
直接切入正題吧:通常來說,我們看到的慢查詢一般還不致於導致掛站,頂多就是應用響應變慢不過這個恰好今天被我撞見了,一個慢查詢把整個網站搞掛了先看看這個SQL張撒樣子:# Query_time: 70.472013 Lock_time: 0.000078 Rows_sent: 7915203 Rows_examined: 15984089 Rows_affected: 0# Bytes_sent: 1258414478use js_sku;SET timestamp=146585
Time of Update: 2017-01-18
MySQL支援單向、非同步複製,複製過程中一個伺服器充當主伺服器,而一個或多個其它伺服器充當從伺服器。主伺服器將更新寫入二進位記錄檔,並維 護記錄檔的一個索引以追蹤記錄檔迴圈。當一個從伺服器串連到主伺服器時,它通知主伺服器從伺服器在日誌中讀取的最後一次成功更新的位置。從伺服器接收從那
Time of Update: 2017-01-18
我們知道,session是一種會話技術,用來實現跨指令碼共用資料或者檢測跟蹤使用者狀態。session的工作原理(1)當一個session第一次被啟用時,一個唯一的標識被儲存於本地的cookie中。(2)首先使用session_start()函數,PHP從session倉庫中載入已經儲存的session變數。(3)當執行PHP指令碼時,通過使用session_register()函數註冊session變數。(4)當PHP指令碼執行結束時,未被銷毀的session變數會被自動儲存在本地一定路徑下的
Time of Update: 2017-01-18
在項目開發的過程中可能需要開放自己的資料庫給別人,但是為了安全不能自己伺服器裡其他資料庫同時開放。那麼可以建立一個使用者,給該使用者開放特定資料庫許可權測試環境:Centos 6.3和Mysql 5.3一、建立使用者複製代碼 代碼如下://登入MYSQL@>mysql -u root -p@>密碼//建立使用者mysql> insert into mysql.user(Host,User,Password)
Time of Update: 2017-01-18
Create TABLE test(id INT UNSIGNED NOT NULL PrimaRY KEY AUTO_INCREMENT,username VARCHAR(15) NOT NULL)AUTO_INCREMENT =
Time of Update: 2017-01-18
預設情況,在CentOS 6.8 下通過yum安裝的是5.1.73版本,現在需求是安裝5.7版本。Mysql官方網站:http://www.mysql.comMysql說明文檔:http://dev.mysql.com/doc/---------------------------------------------------------------------------------------------------一、更改資料庫安裝源在mysql官方網站上找到下載頁面,選擇其中的Yum
Time of Update: 2017-01-18
首先,我用的mysql資料庫是5.7.12版本。出現的問題:1.插入資料顯示錯誤,插入不成功,出現:Incorrect string value: '\xCD\xF5\xD5\xBC\xBE\xA9' for column 'Sname' at row 12.插入中文,雖然插入成功,但是顯示:??解決方案:在my.ini檔案中的 [mysqld] 中加入
Time of Update: 2017-01-18
1.1. 前言前面我們大概介紹了一下樹結構表的基本使用。在我們項目中有好幾塊有用到多層級的概念。下面我們哪大家都比較熟悉的地區表來做示範。1.2. 表結構和資料地區表基本結構,可能在你的項目中還有包含其他欄位。這邊我只展示我們關心的欄位:CREATE TABLE `area` ( `area_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '地區ID', `name` varchar(40) NOT NULL DEFAULT 'unkonw'
Time of Update: 2017-01-18
基本上在每個系統中都有那麼幾張表是自關聯父子關係的結構。往往有很多人都是使用pid來做關聯。在剛進入IT行業時使用CAKEPHP架構編寫WEB的時候,使用它裡面的一個ACL plugin實現許可權管理的時候。發現一個表結構硬是不明白是怎麼回事。具體表結構如下:CREATE TABLE acos ( id INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT, parent_id INTEGER(10) DEFAULT NULL, model VARCHAR(2