Time of Update: 2017-01-13
一直以來,對於MySQL中的事務和鎖的內容是淺嘗輒止,沒有花時間瞭解過,在一次看同事排查的故障中有個問題引起了我的興趣,雖然過去了很久,但是現在簡單總結一下還是有一些收穫。首先我們初始化資料,事務的隔離等級還是MySQL預設的RR,儲存引擎為InnoDB> create table test(id int,name varchar(30));> insert into test values(1,'aa');開啟一個會話,開啟事務。會話1:[test]>start
Time of Update: 2017-01-13
在Oracle中有merge into的文法,可以達到一個陳述式完成同時修改,添加資料的功能,MySQL裡面沒有merge into的文法,卻有replace into。REPLACE的運行與INSERT很相似。只有一點例外,假如表中的一箇舊記錄與一個用於PRIMARYKEY或一個UNIQUE索引的新記錄具有相同的值,則在新記錄被插入之前,舊記錄被刪除。 注意,除非表有一個PRIMARY
Time of Update: 2017-01-13
問題背景 周一上班,首先向同事瞭解了一下上周的測試情況,被告知在多執行個體情境下 MySQL Server hang 住,無法測試下去,原生版本不存在這個問題,而新版本上出現了這個問題,不禁心頭一顫,心中不禁感到奇怪,還好現場環境還在,為排查問題提供了一個好的環境,隨即便投入到緊張的問題排查過程當中。問題執行個體表現如下: 並發量為 384 的時候出現的問題; MySQL 伺服器無法執行事務相關的語句,即使簡單的 select 語句也無法執行; 所有線程處於等待狀態,
Time of Update: 2017-01-13
主從同步架構的優點 讀取工作交給了從伺服器,降低了主伺服器的壓力 在從伺服器進行備份,避免備份期間影響主伺服器服務 當主伺服器出現問題時,可以切換到從伺服器。Amoeba介紹 代碼如下複製代碼 Amoeba(變形蟲)項目,該開源架構於2008年 開始發布一款 Amoeba for Mysql軟體。這個軟體致力於MySQL的分散式資料庫前端代理層,它主要在應用程式層訪問MySQL的 時候充當SQL路由功能,專註於分散式資料庫代理層(Database
Time of Update: 2017-01-13
開啟mysql資料庫中的my.ini設定檔找到wait_timeout發現wait_timeout的參數是5wait_timeout = 5意思是5秒自動中斷連線那麼再提交的資料就會出來mysql server has gone away了,解決辦法我們來看看wait_timeout -- 指的是mysql在關閉一個非互動的串連之前所要等待的秒數wait_timeout:(1)如果設定大小,那麼串連關閉的很快,從而使一些持久的串連不起作用於時我設定成wait_timeout = 300 就是30
Time of Update: 2017-01-13
MySQL 主從架構的適用情境是讀寫分離,通過主庫寫,從庫讀,大多數情境是讀的情況比較多,單一 master 多 slave 的架構可以很好解決讀壓力大的問題。ps://oddyzfr8z.qnssl.com/wp-content/uploads/2016/09/master-slave.jpg" />MySQL
Time of Update: 2017-01-13
引言最佳化SQL,是DBA常見的工作之一。如何高效、快速地最佳化一條語句,是每個DBA經常要面對的一個問題。在日常的最佳化工作中,我發現有很多操作是在最佳化過程中必不可少的步驟。然而這些步驟重複性的執行,又會耗費DBA很多精力。於是萌發了自己編寫小工具,提高最佳化效率的想法。那選擇何種語言來開發工具呢?對於一名DBA來說,掌握一門語言配合自己的工作是非常必要的。相對於shell的簡單、perl的飄逸,Python是一種嚴謹的進階語言。其具備上手快、文法簡單、擴充豐富、跨平台等多種優點。很多人把它
Time of Update: 2017-01-13
innodb是事物安全的MySQL儲存引擎 是oltp應用中核心表的首選儲存引擎MySQL第一個支援事物的儲存引擎是BDBMySQL第一個完整支援ACID事物是innodbinnodb的特點 行鎖設計 支援MVCC 支援外鍵 提供一致性非鎖定讀 同時被設計用來最有效利用以及使用記憶體和cpu 版本 功能
Time of Update: 2017-01-13
找回丟失mysql root密碼一、啟動修改丟失的mysql單一實例root密碼方法;1.首先停止mysql/etc/init.d/mysql stop2.使用--skip-grant-tables啟動mysql,忽略授權登入驗證mysqld_safe --skip-grant-tables --user=mysql & --提示:在啟動時加--skip-grant-tables
Time of Update: 2017-01-13
1,安裝前期工作。建立mysql使用者以及資料存放目錄groupadd mysqluseradd -r -g mysql -s /bin/false mysqlmkdir -p /data/mysql/chown -R mysql.mysql /data/mysql/安裝依賴包:apt-get install build-essential libncurses5-dev cmake openssl*
Time of Update: 2017-01-13
有時我們在往資料庫插入資料的時候,需要判斷某個欄位是否存在,如果存在則執行更新操作,如果不存在則執行插入操作,如果每次首先查詢一次判斷是否存在,再執行插入或者更新操作,就十分不方便。ON DUPLICATE KEY UPDATE這個時候可以給這個欄位(或者幾個欄位)建立唯一索引,同時使用以下 sql 語句進行插入或更新操作:INSERT INTO table (id, user_id, token) VALUES (NULL, '2479031', '232') ON DUPLICATE
Time of Update: 2017-01-13
Inside
Time of Update: 2017-01-13
一、什麼是表分區通俗地講表分區是將一大表,根據條件分割成若干個小表。mysql5.1開始支援資料表分區了。 如:某使用者表的記錄超過了600萬條,那麼就可以根據入庫日期將表分區,也可以根據所在地將表分區。當然也可根據其他的條件分區。二、為什麼要對錶進行分區為了改善大型表以及具有各種訪問模式的表的延展性,可管理性和提高資料庫效率。分區的一些優點包括:與單個磁碟或檔案系統分區相比,可以儲存更多的資料。對於那些已經失去儲存意義的資料,通常可以通過刪除與那些資料有關的分區,很容易地刪除那些資料。相反地,
Time of Update: 2017-01-13
1、分區列索引約束若表有primary key或unique key,則分區表的分區列必須包含在primary key或unique key列表裡,這是為了確保主鍵的效率,否則同一主鍵區的東西一個在A分區,一個在B分區,顯然會比較麻煩。2、各分區類型條件range 每個分區包含那些分區運算式的值位於一個給定的連續區間內的行。這些區間要連續且不能相互重疊list只支援整形欄位或返回整形數的運算式,每個分區列表裡的值列表必須整數hash類型只支援整形欄位或返回整形數的運算式key類型只支援列名形式(
Time of Update: 2017-01-13
今天發現Mysql的主從資料庫沒有同步先上Master庫:mysql>show processlist; 查看下進程是否Sleep太多。發現很正常。show master status; 也正常。mysql> show master status;+-------------------+----------+--------------+-------------------------------+| File | Position | Binlog_Do_DB |
Time of Update: 2017-01-13
MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社區在維護,採用GPL授權許可 MariaDB的目的是完全相容MySQL,包括API和命令列,使之能輕鬆成為MySQL的代替品。在儲存引擎方面,使用XtraDB(英語:XtraDB)來代替MySQL的InnoDB。MariaDB由MySQL的創始人Michael Widenius(英語:Michael Widenius)主導開發,他早前曾以10億美元的價格,將自己建立的公司MySQL
Time of Update: 2017-01-13
1、選取最適用的欄位屬性 MySQL可以很好的支援大資料量的存取,但是一般說來,資料庫中的表越小,在它上面執行的查詢也就會越快。因此,在建立表的時候,為了獲得更好的效能,我們可以將表中欄位的寬度設得儘可能小。例如,在定義郵遞區號這個欄位時,如果將其設定為CHAR(255),顯然給資料庫增加了不必要的空間,甚至使用VARCHAR這種類型也是多餘的,因為CHAR(6)就可以很好的完成任務了。同樣的,如果可以的話,我們應該使用MEDIUMINT而不是BIGIN來定義整型欄位。 另外一個提高效率
Time of Update: 2017-01-13
寫了一個Mysql備份的指令碼,大家看看,有什麼不妥地方。這是我寫的第一個Shell指令碼,大家幫忙看看, 有誰需要的,我可以發給他。可以將這個指令碼放進crontab,每天淩晨執行一次,自動備份 這個指令碼每天最多隻執行一次,而且只保留最近五天的備份在伺服器上。代碼:[code]#!/bin/bash #This is a ShellScript For Auto DB Backup #Powered by aspbiz #2004-09 #Setting
Time of Update: 2017-01-13
在看本文之前,請確保你已掌握了PHP的一些知識以及MYSQL的查詢操作基礎哦。作為一個Web程式,經常要和不計其數的資料打交道,比如會員的資料,文章資料,假如只有幾十個會員那很好辦,在一頁顯示就可以了,可是假如你的網站是幾千甚至幾十萬會員的話,如果都在一頁開啟的話無論對瀏覽器還是觀看者都是一種折磨。相信每個學習PHP的新手都會對分頁這個東西感覺很頭疼,不過有了默默的這一水帖,你肯定會拍拍腦袋說,嘿,原來分頁竟然如此簡單?的確,現在請深呼吸一口新鮮的空氣,仔細的聽默默給你一點一點的分解。假設我們要
Time of Update: 2017-01-13
很簡單的 1.先把 <script language="JavaScript" src="../include/js/regions.js"></script>加到 header.html 頁 2.把 regionss() 函數 加到 /include/tag.php