随笔分类 -  MySQL

MySQL数据库索引简记
摘要:1.B-Tree索引例子CREATE TABLE `test`.`student` ( `name` VARCHAR(45) NULL , `dob` DATE NULL , `desc` VARCHAR(45) NULL , INDEX `btree` USING BTREE (`name` ASC, `dob` ASC, `desc` ASC) )ENGINE = MyISAMDEFAULT CHARACTER SET = utf8COLLATE = utf8_general_ci;BTree索引起作用的情况1)匹配全名:例如,可以帮助查找 name = "Jack" 阅读全文
posted @ 2012-08-29 22:43 ZimZz 阅读(1298) 评论(0) 推荐(0)
MySQL 编码
摘要:编码的种类SHOW VBRIABLES LIKE '%character%';1) character_set_client : MySQL Server 假定client传输数据过来的时候的编码2) character_set_connection: Server收到SQL语句时,将其转换成的编码3) character_set_results: Server在返回数据给客户端时,会将数据转成这个编码4) character_set_system: 元数据编码(表名, 列名等)5) character_set_server, character_set_database, c 阅读全文
posted @ 2012-08-18 00:20 ZimZz 阅读(1926) 评论(0) 推荐(0)
[转]数据库查询的3个优化方法
摘要:在优化查询中,数据库应用(如MySQL)即意味着对工具的操作与使用。使用索引、使用EXPLAIN分析查询以及调整MySQL的内部配置可达到优化查询的目的。 任何一位数据库程序员都会有这样的体会:高通信量的数据库驱动程序中,一条糟糕的SQL查询语句可对整个应用程序的运行产生严重的影响,其不仅消耗掉更多的数据库时间,且它将对其他应用组件产生影响。 如同其它学科,优化查询性能很大程度上决定于开发者的直觉。幸运的是,像MySQL这样的数据库自带有一些协助工具。本文简要讨论诸多工具之三种:使用索引,使用EXPLAIN分析查询以及调整MySQL的内部配置。 #1: 使用索引 MySQL允许对数据库... 阅读全文
posted @ 2012-08-15 10:10 ZimZz 阅读(337) 评论(0) 推荐(0)
MySQL的数据类型
摘要:1.整数TINYINT: 8 bit 存储空间SMALLINT:16 bit 存储空间MEDIUMINT:24 bit 存储空间INT:32bit 存储空间BIGINT:64 bit 存储空间分为SIGNEN: 有符整数,可存储正数和负数,如 TINYINT SIGNED 表示的范围是 -127 ~ 128UNSIGNED: 无符整数,只能存储正数,但是表示的值是有符整数的两倍, 如 TINYINT UNSIGNED 表示的范围是 0 ~ 255有符整数和无符整数只有表示的值大小上的区别,存储空间和效率上都是一样的2.实数DECIMAL: 可表示比 BIGINT 还大的正数,保存时可以指定整数 阅读全文
posted @ 2012-08-14 02:07 ZimZz 阅读(10691) 评论(0) 推荐(0)
MySQL命令速记
摘要:系统参数系列show table status where name = "film": 显示某个表的属性show status : 显示mysql状态show processlist : 显示mysql连接状态show index from user : 显示user表索引show profiles : 显示查询执行时间状况,使用前先设置参数 set profiling=1;show profile for query 1: 查看第一条sql的具体执行情况PAGER cat > /dev/null : 将输出转到垃圾黑洞TRUNCATE TABLE: 清空table 阅读全文
posted @ 2012-08-13 22:18 ZimZz 阅读(843) 评论(0) 推荐(0)
MySQL性能测试工具 mysqlslap
摘要:先看参数介绍FormatOption FileDescriptionIntroduced--auto-generate-sqlauto-generate-sqlGenerate SQL statements automatically when they are not supplied in files or using command options--auto-generate-sql-add-autoincrementauto-generate-sql-add-autoincrementAdd AUTO_INCREMENT column to automatically generat 阅读全文
posted @ 2012-08-13 19:24 ZimZz 阅读(3557) 评论(0) 推荐(0)
[转载] 关于MySQL中的行锁机制
摘要:先前介绍过SELECT … FOR UPDATE的用法,不过锁定(Lock)的资料是判别就得要注意一下了。由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料表单给锁住)。举个例子:假设有个表单products ,里面有id跟name二个栏位,id是主键。例1: (明确指定主键,并且有此笔资料,row lock)SELECT * FROM products WHERE id=’3′ FOR UPDATE;例2: (明确指定主键,若查无此笔资料,无l 阅读全文
posted @ 2012-05-16 15:30 ZimZz 阅读(422) 评论(0) 推荐(0)
死锁机制
摘要:介绍: 死锁是由于不同的进程拥有对方需要的被锁资源,又在相互请求对方的被锁资源造成的无限等待局面1 JAVA中的死锁1.1 死锁示例两个死锁类 1 package deadlock; 2 3 import java.util.List; 4 5 public class A extends Thread { 6 private List listA; //A,B两个类共享同一个listA和listB 7 private List listB; 8 9 public A(List listA, List listB) {10 this.listA =... 阅读全文
posted @ 2012-05-16 12:02 ZimZz 阅读(1139) 评论(0) 推荐(0)
数据库持久连接小记
摘要:本机环境:Apache+PHP+MySQL先了解一下背景知识,Apache采用父进程调度多个子进程模式处理请求,每当客户端向父进程提出请求时,该请求会被传递给还没有被其它的客户端请求占用的子进程。相同的客户端第二次向服务端提出请求时,它将有可能被一个不同的子进程来处理。在使用了MySQL持久连接后,子进程会持有一个数据库持久连接,持久连接在脚本运行结束后不会关闭,可以通过mysqladmin -uroot -ppass processlist命令查看.如果在查询时Apache分配了持有这个持久连接的子进程来处理请求,则不需要重新建立新连接,否则新的子进程重新建立持久连接来处理数据库查询.下面说 阅读全文
posted @ 2012-05-10 01:52 ZimZz 阅读(850) 评论(0) 推荐(0)
MySQL实用语句 GROUP BY ... HAVING ...
摘要:问题背景:数据库内有两个表,user,message,message表中含有useId外键,现在需要统计发的message超过2条的user,并按发的消息条数从高到低排序SELECT user.userId, COUNT(msg.messageId) FROM user JOIN message as msg ON user.userId = msg.userId GROUP BY user.userId HAVING COUNT(msg.messageId) > 2ORDER BY COUNT(msg.messageId) DESC显示结果 阅读全文
posted @ 2012-05-05 20:55 ZimZz 阅读(430) 评论(0) 推荐(0)
常见数据库端口号
摘要:MySQL: 3306SQL Server: 1433Oracle: 1521 阅读全文
posted @ 2012-05-05 16:43 ZimZz 阅读(620) 评论(0) 推荐(0)