关于MySQL数据库的存储引擎
MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。
例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。
这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL服务器中启用。你可以选择适用于服务器、数据库和表格的存储引擎,以便在选择如何存储你的信息、如何检索这些信息以及你需要你的数据结合什么性能和功能的时候为你提供最大的灵活性。
可以使用 show engines;命令显示MySQL所支持的存储引擎
最直接的方式是在创建表时指定存储引擎的类型:
CREATE TABLE mytable (id int, title char(20)) ENGINE = INNODB
你还可以改变现有的表使用的存储引擎:
ALTER TABLE mytable ENGINE = MyISAM
各存储引擎之间的区别
为了做出选择哪一个存储引擎的决定,我们首先需要考虑每一个存储引擎提供了哪些不同的核心功能。这种功能使我们能够把不同的存储引擎区别开来。我们一般把这些核心功能分为四类:支持的字段和数据类型、锁定类型、索引和处理。一些引擎具有能过促使你做出决定的独特的功能,我们一会儿再仔细研究这些具体问题。
字段和数据类型
虽然所有这些引擎都支持通用的数据类型,例如整型、实型和字符型等,但是,并不是所有的引擎都支持其它的字段类型,特别是BLOG(二进制大对象)或者TEXT文本类型。其它引擎也许仅支持有限的字符宽度和数据大小。
这些局限性可能直接影响到你可以存储的数据,同时也可能会对你实施的搜索的类型或者你对那些信息创建的索引产生间接的影响。这些区别能够影响你的应用程序的性能和功能,因为你必须要根据你要存储的数据类型选择对需要的存储引擎的功能做出决策。
锁定
数据库引擎中的锁定功能决定了如何管理信息的访问和更新。当数据库中的一个对象为信息更新锁定了,在更新完成之前,其它处理不能修改这个数据(在某些情况下还不允许读这种数据)。
锁定不仅影响许多不同的应用程序如何更新数据库中的信息,而且还影响对那个数据的
相关文档:
1.只复制表结构到新表
CREATE TABLE 新表 SELECT * from 旧表 WHERE 1=2
或CREATE TABLE 新表 LIKE 旧表
2.复制表结构及数据到新表
CREATE TABLE 新表 SELECT * from 旧表
3.复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表 SELECT * from 旧表
4.复制旧表的数据到新表(假设两个表结构不一样)
......
MySQL 命令行
1、mysql服务的启动和停止
net stop mysql
net start mysql
2、登陆mysql
语法如下: mysql -u用户名 -p用户密码
键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器I ......
前次写了个程序跑在solaris10上,要用到mysql数据库,去sun网站上下一个过来,
然后pkgadd mysql5.* 什么提示都没,就安装完成了,郁闷的事情就这样发生了──
我不知道MYSQL的默认用户名密码是什么,按照WINDOWS中使用的经验试了N遍,
不行!只好GOOGLE了,好不容易搞定。一下为GOOGLE之内容,非原创
Unix&Linux ......
1. mysql 入库乱码问题
解决办法
首先 安装的时候必须选择utf-8字符集
如果不是可以进行再次配置或者设置相关变量
(可以用 SHOW VARIABLES LIKE %CHARACTER%; 查看 用 set CHARACTER_** = UTF8)
其次连接的时候 指定字符集
jdbc:mysql://localhost/guestbooktes ......
1.通过修改MYSQL数据库中MYSQL库的USER表
就用普通的UPDATE、INSERT语句就可以
use mysql
update user set Password=password('newpassword') where User='root';
flush privileges;
(这个亲自实验过,可以执行!)
2.在命令行中使用如下命令
&nbs ......