Time of Update: 2017-01-19
MySQL的分頁似乎一直是個問題,有什麼最佳化方法嗎?網上看到網上推薦了一些分頁方法,但似乎不太可行,你能點評一下嗎?方法1: 直接使用資料庫提供的SQL語句---語句樣式: MySQL中,可用如下方法: SELECT * FROM 表名稱 LIMIT M,N。---適應情境: 適用於資料量較少的情況(元組百/千級)。---原因/缺點: 全表掃描,速度會很慢 且
Time of Update: 2017-01-19
假設有個表:複製代碼 代碼如下:CREATE TABLE users(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),user_name VARCHAR(20) NOT NULL,emails VARCHAR(50) NOT NULL);初始化表,並添加些記錄。 複製代碼 代碼如下:truncate table usersINSERT INTO users(user_name, emails)
Time of Update: 2017-01-19
我們自己鼓搗mysql時,總免不了會遇到這個問題:插入中文字元出現亂碼,雖然這是營運先給配好的環境,但是在自己機子上玩的時候咧,總得知道個一二吧,不然以後如何優雅的吹牛B。如果你也遇到了這個問題,咱先不談原因,在PC內建的cmd中(或者是mysql安裝版安裝後的Command
Time of Update: 2017-01-19
表a aid adate 1 a1 2 a2 3 a3 表b bid bdate 1 b1 2 b2 4 b4 兩個表a、b相串連,要取出id相同的欄位。select * from a inner join b on a.aid = b.bid這是僅取出匹配的資料。此時的取出的是:1 a1 b1 2 a2 b2 那麼left join 指:select * from a left join b on a.aid = b.bid
Time of Update: 2017-01-19
檢測事件是否開啟複製代碼 代碼如下: show variables like 'event_scheduler'; 2.開啟事件複製代碼 代碼如下: set global event_scheduler = on; 3.建立一個預存程序複製代碼 代碼如下:delimiter //create procedure test()beginupdate project set create_time = now();end; 4.建立一個事件複製代碼 代碼如下:
Time of Update: 2017-01-19
索引並不是時時都會生效的,比如以下幾種情況,將導致索引失效:如果條件中有or,即使其中有條件帶索引也不會使用(這也是為什麼盡量少用or的原因) 注意:要想使用or,又想讓索引生效,只能將or條件中的每個列都加上索引 2.對於多列索引,不是使用的第一部分,則不會使用索引 3.like查詢是以%開頭 4.如果列類型是字串,那一定要在條件中將資料使用引號引用起來,否則不使用索引 5.如果mysql估計使用全表掃描要比使用索引快,則不使用索引此外,查看索引的使用方式show
Time of Update: 2017-01-19
MySQL包含對觸發器的支援。觸發器是一種與表操作有關的資料庫物件,當觸發器所在表上出現指定事件時,將調用該對象,即表的操作事件觸發表上的觸發器的執行。建立觸發器在MySQL中,建立觸發器文法如下:複製代碼 代碼如下:CREATE TRIGGER trigger_nametrigger_timetrigger_event ON tbl_nameFOR EACH
Time of Update: 2017-01-19
Linux下可以利用crontab系統每天定時備份MySQL資料庫,以下是詳細步驟:1、建立儲存備份檔案的路徑/mysqldata#mkdir /mysqldata2、建立/usr/sbin/bakmysql檔案#vi /usr/sbin/bakmysql輸入rq=` date +%Y%m%d `tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql或者寫成rq=` date +%Y%m%d `mysqldump –all-databases -u
Time of Update: 2017-01-19
在MySQL中進行資料備份的方法有兩種:1. mysqlhotcopy這個命令會在拷貝檔案之前會把表鎖住,並把資料同步到資料檔案中,以避免拷貝到不完整的資料檔案,是最安全快捷的備份方法。命令的使用方法是:mysqlhotcopy -u root -p<rootpass> db1 db2 … dbn <output_dir>如果需要備份全部資料庫,可以加上–regexp=”.*”參數。
Time of Update: 2017-01-19
開啟 MySQL 的遠程登陸帳號需要注意下面3點:1、確定伺服器上的防火牆沒有阻止 3306 連接埠。MySQL 預設的連接埠是 3306 ,需要確定防火牆沒有阻止 3306 連接埠,否則遠程是無法通過 3306 連接埠串連到 MySQL 的。如果您在安裝 MySQL 時指定了其他連接埠,請在防火牆中開啟您指定的 MySQL
Time of Update: 2017-01-19
近期將公司的MySQL架構升級了,由原先的一主多從換成了DRBD+Heartbeat雙主多從,正好手上有一個電子商務網站新項目也要上線了,用的是DRBD+Heartbeat雙主一從,由於此過程還是有別於以前的MyISAM引擎的,所以這裡也將其心得歸納總結了一下:1)MySQL的replication過程是一個非同步同步的過程,並非完全的主從同步,所以同步的過程中是有延遲的,如果做了讀寫分離的業務的話,建議也要監控此延遲時間;2)MySQL的master與slave機器記得server-id要保持
Time of Update: 2017-01-19
簡單的表達。 MyISAM 是非事務的儲存引擎。 innodb是支援事務的儲存引擎。 innodb的引擎比較適合於插入和更新操作比較多的應用 而MyISAM 則適合用於頻繁查詢的應用 MyISAM --表鎖。 innodb--設計合理的話是行鎖。 MyISAM 不會出現死結。 最大的區別就是MYISAM適合小資料,小並發;INNODB
Time of Update: 2017-01-19
MyISAM InnoDB 構成上的區別: 每個MyISAM在磁碟上儲存成三個檔案。第一個檔案的名字以表的名字開始,副檔名指出檔案類型。 .frm檔案儲存體表定義。 資料檔案的副檔名為.MYD (MYData)。
Time of Update: 2017-01-19
一、修改Linux預設的IO調度演算法.linux預設的IO調度演算法為cfq,需要修改為dealine,如果是SSD或者PCIe-SSD裝置,需要修改為noop,可以使用下面兩種修改方式。1、線上動態修改,重啟失效。複製代碼 代碼如下:echo “deadline” >
Time of Update: 2017-01-19
資料庫在使用當中都會有Database Backup工作,當資料庫發生嚴重錯誤無法啟動,或者資料丟失時可以及時有效地恢複資料。文章簡單介紹如何備份與還原MySQL資料庫。備份資料庫使用mysqldump命令備份資料庫複製代碼 代碼如下:# 如果要將game資料庫進行備份:mysqldump -u root -p game > game_backup.sql# 如果希望備份所有的資料庫:mysqldump -u root -p --all-databases > all_backup.
Time of Update: 2017-01-19
毫無預兆的,MySQL 罷工了。 用 mysql.server 啟動指令碼啟動之後,沒有任何提示資訊就結束,mysqld進程自然是沒有起來。把 mysql.server 裡面 $bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file >/dev/null 2>&1 這句的輸出重新導向去掉後運行,結果發現報錯: File size limit exceedednohup ...
Time of Update: 2017-01-19
如果需要在查詢語句返回的列中包含一列表示該條記錄在整個結果集中的行號, ISO SQL:2003 標準提出的方法是提供 ROW_NUMBER() / RANK() 函數。 Oracle 中可以使用標準方法(8i版本以上),也可以使用非標準的 ROWNUM ; MS SQL Server 則在 2005 版本中提供了 ROW_NUMBER() 函數;但在 MySQL 中似乎還沒有這樣的系統內建功能。雖然 LIMIT 可以很方便的對返回的結果集數量和位置進行過濾,但過濾出來的記錄的行號卻沒辦法被
Time of Update: 2017-01-19
當通過 TCP/IP 串連 MySQL 遠程主機時,出現 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 104 。如果是在linux shell命令列中直接打 mysql 命令,能夠順利連上 MySQL,執行查詢語句也比較正常,但如果執行 STOP SLAVE; 命令時就隨機出現 ERROR 2013 (HY000):
Time of Update: 2017-01-19
php代碼很簡單:複製代碼 代碼如下:$server="127.0.0.1";println("Begin");$link = mysql_connect($server,"mysql","mysql");if (!$link) { die('Could not connect: ' . mysql_error().mysql_errno());}linux本機下使用php mysql.php 可以查看運行結果,但是
Time of Update: 2017-01-19
mysql安裝成功後有幾個預設的配置模板,列表如下:my-huge.cnf : 用於高端產品伺服器,包括1到2GB RAM,主要運行mysqlmy-innodb-heavy-4G.ini : 用於只有innodb的安裝,最多有4GB RAM,支援大的查詢和低流量my-large.cnf : 用於中等規模的產品伺服器,包括大約512M RAMmy-medium.cnf : 用於低端產品伺服器,包括很少記憶體(少於128M)my-small.cnf : 用於最低裝置的伺服器,只有一點記憶體(少於51