存储引擎是什么? MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。 例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。 这些不同的技术以及配套的相关功能在 MySQL中被称作存储引擎(也称作表类型)。
Unix平台上的MySQL客户端能够以两种不同的方式连接到mysqld服务器:通过文件系统中的文件(默认为/tmp/mysql.sock)使用Unix套接字进行连接,或通过端口号使用TCP/IP进行连接。Unix套接字文件的连接速度比TCP/IP快,但仅能在与相同计算机上的服务器相连时使用。如果未指定指定主机名或指定了特殊的主机名localhost,将使用Unix套接字。 连接到mysql的方式除了使用socket,还有什么方式? bin/mysqladmin version protocol={TCP | SOCKET | PIPE | MEMORY} 连接到服务器时将使用的协议。 socket:当服务器是本地主机时将要连接的Unix套接字文件或Windows命名管道。 连接相关字符集 · 当查询离开客户端后,在查询中使用哪种字符集? 服务器使用character_set_client变量作为客户端发送的查询中使用的字符集。 · 服务器接收到查询后应该转换为哪种字符集? 转换时,服务器使用character_set_connection和collation_connection系统变量。它将客户端发送的查询从character_set_client系统变量转换到character_set_connection(除非字符串文字具有象_latin1或_utf8的引介词)。collation_connection对比较文字字符串是重要的。对于列值的字符串比较,它不重要,因为列具有更高的 校对规则优先级。 · 服务器发送结果集或返回错误信息到客户端之前应该转换为哪种字符集? character_set_results变量指示服务器返回查询结果到客户端使用的字符集。包括结果数据,例如列值和结果元数据(如列名)。 有两个语句影响连接字符集: SET NAMES ‘charset_name’ SET CHARACTER SET charset_name SET NAMES显示客户端发送的SQL语句中使用什么字符集。因此,SET NAMES ‘cp1251′语句告诉服务器“将来从这个客户端传来的信息采用字符集cp1251”。它还为服务器发送回客户端的结果指定了字符集。(例如,如果你使用一个SELECT语句,它表示列值使用了什么字符集。) SET NAMES ‘x’语句与这三个语句等价: mysql> SET character_set_client = x; mysql> SET character_set_results = x; mysql> SET character_set_connection = x; 将x设置为character_set_connection也就设置了collation_connection是x的默认校对规则。 SET CHARACTER [...]
导出整个数据库: bin/mysqldump –p Meet_A_Geek > MeetAGeek_Dump_File.txt 导出某个表: bin/mysqldump –p Meet_A_Geek Orders >MeetAGeek_Orders.txt 使用where子句: bin/mysqldump –p –where=”Order_ID > 2000″ Meet_A_Geek Orders > Special_Dump.txt 常用选项: –add-drop-table :为每个表的创建语句前加上删除表的语句。 –add-locks : -t or -no-create- info :只导表数据,不要表结构。 -d or -no-data :只要表结构,不要数据。 –opt:优化导出速度。
CONSTRAINT `crawl_task_ibfk_1` FOREIGN KEY (`test_id`) REFERENCES `test` (`test_id`) ON DELETE CASCADE 为本表增加一个外键,名字叫crawl_task_ibfk_1; 将本表的test_id字段设置为外键; 这个外键收到的约束来自于test表的test_id字段。 constraint:约束 referencing table:参照表 referenced table:被参照表 FOREIGN KEY:外键,即这个键的参照值来自于其他表。 外键的作用:保持数据一致性,完整性,使2张表形成关联,外键只能引用外表中的列的值。
零碎儿 查看socket:netstat -ln|grep mysql 应保证MySQL数据库目录有文件“user.MYD”。否则,执行mysql_install_db脚本。 升级到较新的版本,运行了mysql_fix_privilege_tables脚本。 记住客户端程序使用选项文件或环境变量中指定的连接参数。 使用–host=127.0.0.1选项来明确命名服务器主机。这样将通过TCP/IP协议来连接本地mysqld服务器。 /home/work/thirdparty/mysql5/bin/mysqladmin –root –p shutdown /home/work/thirdparty/mysql5/bin/mysqld_safe & 查看超时配置:Show variables; show variables like ‘%timeout%’; 查看数据库状态:show status; show status where variable_name like ‘%abort%’; show status like ‘%slow_queries%’; 在终端中记录操作日志: mysql> \T /tmp/log Mysql 的 binlog 二进制日志的主要目的是在恢复时能够最大可能地更新数据库,因为二进制日志包含备份后进行的所有更新。 二进制日志还用于在主复制服务器上记录所有将发送给从服务器的语句。 可以用RESET MASTER语句删除所有二进制日志文件,或用PURGE MASTER LOGS只删除部分二进制文件。 Mysql的timeout设置 1、在db_mysql中的function Db中的return $this->connection;之前加上下面的语句即可解决这个问题: mysql_query(“set wait_timeout 28800″, $this->connection); 2、show variables [...]