mysql必知必会学习笔记

1 : mysql -u ben -pxxxx -h myserver -P 9999

2:  mysql-admin 默认端口3306??      

       mysql-query-browser

3:   查看数据库的列表

       show databases;

  

+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| students |
+--------------------+
3 rows in set (0.00 sec)

4: use mysql

    show tables  获得数据库内标的列表

  

+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| servers |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
| user_info |
+---------------------------+
24 rows in set (0.00 sec)

desc user;

+-----------------------+-----------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------+-----------------------------------+------+-----+---------+-------+
| Host | char(60) | NO | PRI | | |
| User | char(16) | NO | PRI | | |
| Password | char(41) | NO | | | |
| Select_priv | enum('N','Y') | NO | | N | |
| Insert_priv | enum('N','Y') | NO | | N | |
| Update_priv | enum('N','Y') | NO | | N | |
| Delete_priv | enum('N','Y') | NO | | N | |
| Create_priv | enum('N','Y') | NO | | N | |
| Drop_priv | enum('N','Y') | NO | | N | |
| Reload_priv | enum('N','Y') | NO | | N | |
| Shutdown_priv | enum('N','Y') | NO | | N | |
| Process_priv | enum('N','Y') | NO | | N | |
| File_priv | enum('N','Y') | NO | | N | |
| Grant_priv | enum('N','Y') | NO | | N | |
| References_priv | enum('N','Y') | NO | | N | |
| Index_priv | enum('N','Y') | NO | | N | |
| Alter_priv | enum('N','Y') | NO | | N | |
| Show_db_priv | enum('N','Y') | NO | | N | |
| Super_priv | enum('N','Y') | NO | | N | |
| Create_tmp_table_priv | enum('N','Y') | NO | | N | |
| Lock_tables_priv | enum('N','Y') | NO | | N | |
| Execute_priv | enum('N','Y') | NO | | N | |
| Repl_slave_priv | enum('N','Y') | NO | | N | |
| Repl_client_priv | enum('N','Y') | NO | | N | |
| Create_view_priv | enum('N','Y') | NO | | N | |
| Show_view_priv | enum('N','Y') | NO | | N | |
| Create_routine_priv | enum('N','Y') | NO | | N | |
| Alter_routine_priv | enum('N','Y') | NO | | N | |
| Create_user_priv | enum('N','Y') | NO | | N | |
| Event_priv | enum('N','Y') | NO | | N | |
| Trigger_priv | enum('N','Y') | NO | | N | |
| ssl_type | enum('','ANY','X509','SPECIFIED') | NO | | | |
| ssl_cipher | blob | NO | | NULL | |
| x509_issuer | blob | NO | | NULL | |
| x509_subject | blob | NO | | NULL | |
| max_questions | int(11) unsigned | NO | | 0 | |
| max_updates | int(11) unsigned | NO | | 0 | |
| max_connections | int(11) unsigned | NO | | 0 | |
| max_user_connections | int(11) unsigned | NO | | 0 | |
+-----------------------+-----------------------------------+------+-----+---------+-------+

SHOW GRANTS 用来显示授权用户的安全授权

mysql> select prod_name from products limit 5,5;
+--------------+
| prod_name |
+--------------+
| Carrots |
| Fuses |
| JetPack 1000 |
| JetPack 2000 |
| Oil can |
+--------------+
5 rows in set (0.00 sec)

mysql> select * from products order by prod_price desc limit 1;
+---------+---------+--------------+------------+-------------------------+
| prod_id | vend_id | prod_name | prod_price | prod_desc |
+---------+---------+--------------+------------+-------------------------+
| JP2000 | 1005 | JetPack 2000 | 55.00 | JetPack 2000, multi-use |
+---------+---------+--------------+------------+-------------------------+

 

使用通配符:

  搜索起来比较慢: 不要过度使用通配符; 在确实需要通配符时,尽量不要用在最前面。

 函数可以移植性不好: 

     但效率高,因此要做好注释

 关于全文本搜索支持:

 mysql和数据库引擎之间的关系:

      最常用的MyISAM 和 InnoDB 后者不支持 全文本搜索

  不要再导入数据时使用FULLTEXT

  应该首先导入所有的数据,然后再修改表,定义FULLTEXT 这样有助于更快的导入数据 而且索引数据的总时间小于再倒入每行时分别进行索引所需的总时间

insert的性能:

  1: 如果数据检索是重要的  使用 : insert low_priority into 可以降低优先级 插入操作可能很耗时 

       insert

         (

         )

       values (

          ),

         (

         );

     这样子会提高insert 的性能

   

更新与删除的原则:

  1: 一般不用不带where 字句的update 或 delete 语句

  2: 使用强制实施引用完整性的数据库 这样mysql 将不允许删除具有与其他表相关联的数据的行

 create的原则:

    每个表支援许一个auto_increment 列

  数据库引擎:

 InnoDB 可靠的事务处理引擎 不支持文本搜索

 MEMORY在功能上等同于MyISAMysql 但由于数据存储在内存中,速度很快。

 MyISAM 是一个性能极高的引擎,支持全文本搜索,但不支持事务处理

 

注意: 外键不能跨引擎: 混用引擎类型: 外间不能跨引擎,及使用一个引擎的表不能饮用具有使用不同引擎的表的外键。

   

 

 

 事务处理: 事务处理是一种机制,用来管理必须成批执行的mysql操作,以保证数据库不包含不完整的操作结果。

  他们或作为整体执行,或完全不执行。  commit or rollback

  事务 transaction : 一组sql语句

  回退rollback : 撤销指定的sql语句的过程

  提交commit: 将未存储的sql语句结果写入数据库表。

  保留点savepoint: 事务处理中设置的临时占位符,可以对他发布回退。

 

更改默认的提交行为:

  为指示mysql不自动提交更改,须执行:

  set autocommit = 0;

  autocommit 标志是针对每个连接而不是服务器用的。

 

应该考虑考虑对objectid的索引工作!

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2012-01-18 09:28  王帅901  阅读(364)  评论(2编辑  收藏  举报