mysql提升

修改數據庫的字符集:
alter database drugstore default  character set utf8
修改表的字符集:
 ALTER TABLE product CONVERT TO CHARACTER SET utf8;

修改密碼篇
 root用戶給自己修改密碼:
 (1)mysqladmin -u root -p password "新密碼"; 回車後輸入舊密碼
 (2)登錄數據庫後執行SET PASSWORD=PASSWORD("新密碼");
 (3)登錄數據庫後執行UPDATE mysql.user SET authentication_string=PASSWORD("新密碼") WHERE User="root";
 root用戶修改普通用戶密碼:
 (1)SET PASSWORD FOR 'username'@'hostname'=PASSWORD("新密碼");
 (2)grant 權限類型 on database.table  to 'username'@'localhost' identified by 'password';
 root用戶密碼丟失:
 1、/etc/init.d/mysqld start --skip-grant-tables 啓動mysql服務時跳過權限表
(或者在my.cnf中添加--skip-grant-tables)
 2.mysql -u root 不需要密碼直接登錄數據庫
 3.通過update的方式改密碼:
update mysql.user set authentication_string=password('root') where user='root' ;
修改表
1.修改表名:ALTER table 舊錶名 RENAME 新表名;
2.修改表的數據類型:ALTER table 表名 modify 字段名 新的數據類型;
3.修改字段名:ALTER table 表名 CHANGE 舊字段名 新字段名 數據類型;
4.增加字段:ALTER table 表名 ADD 字段名 數據類型 【完整性約束條件】【FIRST | AFTER 字段名 】
5.刪除字段:ALTER table 表名 DROP 字段名;
6.修改表的存儲引擎:ALTER table 表名 ENGINE=存儲引擎名; 
7.刪除表的外鍵約束:ALTER table 表名 DROP FOREIGN KEY 外鍵別名;
8.刪除表:DROP table 表名;

MySQL存儲引擎中的MyISAM和InnoDB區別

InnerDB的特點:
1、支持事務處理、ACID事務特性
2、實現了SQL標準的四種隔離級別
3、支持行級鎖和外鍵約束
4、可以利用事務日誌進行數據恢復
5、不支持FullText類型的索引,沒有保存數據庫行數,計算count(*)需要全局掃描
6、支持自動增加列屬性auto_increment
7、最後也是非常重要的一點:InnerDB是爲了處理大量數據時的最大性能設計,其CPU效率可能是其他基於磁盤的關係型數據庫所不能匹敵的。

MyISAM
1、做很多count計算的,(如果count計算後面有where還是會全表掃描)
2、插入和更新較少,查詢比較頻繁的

mysql備份表


4個事務隔離級別
未授權讀取 
也稱爲讀未提交(Read Uncommitted):允許髒讀取,但不允許更新丟失。如果一個事務已經開始寫數據,則另外一個事務則不允許同時進行寫操作,但允許其他事務讀此行數據。該隔離級別可以通過“排他寫鎖”實現。

授權讀取 
也稱爲讀提交(Read Committed):允許不可重複讀取,但不允許髒讀取。這可以通過“瞬間共享讀鎖”和“排他寫鎖”實現。讀取數據的事務允許其他事務繼續訪問該行數據,但是未提交的寫事務將會禁止其他事務訪問該行。 
可重複讀取(Repeatable Read) 
禁止不可重複讀取和髒讀取,但是有時可能出現幻讀數據。這可以通過“共享讀鎖”和“排他寫鎖”實現。讀取數據的事務將會禁止寫事務(但允許讀事務),寫事務則禁止任何其他事務。 

序列化(Serializable) 
提供嚴格的事務隔離。它要求事務序列化執行,事務只能一個接着一個地執行,不能併發執行。僅僅通過“行級鎖”是無法實現事務序列化的,必須通過其他機制保證新插入的數據不會被剛執行查詢操作的事務訪問到。


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章