« Posts tagged MySQL

MySQL随机查询方法一则

MySQL SQL
SELECT * FROM `tablename` ORDER BY RAND() LIMIT 5

通常需要做随机查询的时候我都会想到MySQL的Rand()函数, 即上面的方法, 但很少用, 今天试了一下, 效率超低, 根本没法满足需求, 所以只好求助Google大神了(我喜欢Google的新style^^), 最后于老蒋处学了一招, 别说, 还真挺管用的

MySQL SQL
SELECT *
FROM `table` AS t1
JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `table`)-(SELECT MIN(id) FROM `table`))+(SELECT MIN(id) FROM `table`)) AS id) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id LIMIT 1;

MySQL For Developers (5th Day)

  • Storage Engines
  • Optimization
  • Conclusion

        第二十章学习的是MySQL的存储引擎,由于本次培训是针对开发人员的,所以这部分的内容只做了简单介绍。主要对MyISAM,InnoDB,Memory三种存储引擎的特性进行了介绍,MyISAM特点是读取比较快,InnoDB支持如事务、外键等的功能,Memory类型的存储引擎则保存在内存中读写操作更加快,但不适合长期存放数据。然后讲解了MyISAM下各种查询的优先级别的设置。

        第二十一章学习的是关于MySQL的优化,同样做为针对开发都的培训课程并没有对优化的部分讲太多,对于开发人员来说优化就在于如何正确的使用索引来提高查询的速度, »Read More

MySQL For Developers (4th Day)

  • View
  • Prepared Statements
  • Exporting and Importing Data
  • Stored Routines
  • Triggers

        第十五章学习的是视图,最近开发的一些项目里面已经不同程度的应用了视图功能。视图是个非常不错的特性,可以把多个关系表合并成一个完成的表方便查询和操作,也可以将一个复杂的表拆分成若干小的表格来有针对性的进行数据处理,视图其实是一个由SELECT构建的虚拟表,在UPDATE和DELETE操作的时候会有些限制。

        第十六章学习的是自定义预置语句(我是这么翻译的,可能不太准确,呵呵),功能就是将一些常用的并且比较复杂的查询语句进行自定义,以方便随时调用,Prepare是保存在SESSION中的,所以两个不同的会话不能共享Prepare。另,Prepare中可以使用自定义变量。 »Read More

MySQL For Developers (3rd Day)

  • Manipulating Table Data
  • Transactions
  • Joins
  • Subqueries

以上是今天所学习的11-14章节,因为今天的内容跟前两天相比的话在逻辑关系上会复杂一点,所以只学习了4个章节。今天学习的内容有些是我常用的,有些是之前没有应用过或不太熟悉的东西。

第十一章讲的是关于表的操作,就是CURD之类的东西,每天都要用的,不多说了。

第十二章讲的是事务,关于事务本来只有些概念性的了解,虽说在一些项目中应该应用事务物性,但由于那些应用都比较简单,所以没有真正应用过,今天算是搞明白了,之前主要是对事务的隔离等没有概念,不了解各种事务隔离等之间的区别。总之事务是个很重要的特性。 »Read More

MySQL For Developers (2nd Day)

今天又讲了5个章节,6-10如下:

  • Data Types
  • SQL Expressions
  • Obtaining Metadata
  • Databases
  • Tables

        第六章详细对MySQL的各种数据类型做了介绍,学习了INT(10)形式后台的参数单独使用并没有什么意义,只在与zerofill配合全用的时候才有用;bit型数据默认是输出字串的;字符数据类型中学了ENUM与SET两个原来没用过的类型;学习了设定编码类型与编码规则;timestamp型的inserted和updated不能在一张表里同时使用;

        第七章对SQL表达式进行了学习,包括数值的计算、比较,字串的连接、截取等的方法以及与此相关的函数。章节的结尾对MySQL特有的注释方法做了介绍(涉及版本兼容性)。 »Read More

MySQL For Developers (1st Day)

昨天家里请客人吃饭,我陪酒喝多了……HOHO,所以回家后没写blog,直接睡觉了。今天先把昨天的补上吧。

先说说培训的地方吧,adways——好像是家日资企业,我在网上搜了一个,他们的主要业务是广告和软件开发,同时也做mysql的认证培训。adways给人感觉很年轻,很有活力,开放式的办公环境,员工几乎都是年轻人,会议室和办公室上面的牌子挺逗,都是用金庸小说里的地名命名的,比如我上课的教室就叫做“桃花岛”(莫非讲师就是黄老邪?)。

培训是一对一的,呵呵,很有趣,因为这期培训只有我一个学员,貌似这样成本很高啊。讲师是北大毕业的,看样子有点水平,据说是mysql认证的讲师,不过课上的有点乏味,从头到尾都是同一个语调,昨天下午差点给我讲睡着了。

好了,说说正经的吧。培训的教材很厚,全英文的,一共22个章节。昨天学了1-5章: »Read More