mysql事务的优缺点?
Mysql分布式锁一般适用于资源不存在数据库,如果数据库存在比如订单,那么可以直接对这条数据加行锁,不需要我们上面多的繁琐的步骤,比如一个订单,那么我们可以用select * from order_table where id = 'xxx' for update进行加行锁,那么其他的事务就不能对其进行修改。
优点: 理解起来简单,不需要维护额外的第三方中间件(比如Redis,Zk)。
缺点: 虽然容易理解但是实现起来较为繁琐,需要自己考虑锁超时,加事务等等。性能局限于数据库,一般对比缓存来说性能较低。对于高并发的场景并不是很适合。
用MySQL好还是用Postgresql好?
两个都挺好。
MySql用的最广泛,而Postgresql号称最好的开源数据库,这两个数据库我在项目上都有使用,在写代码的时候其实感觉不出什么差别来。
但是MySQL数据库是云服务商支持的最好的数据库,因为应用最广泛,如果要直接买云数据库,那首选还是MySQL吧。比如我买了阿里云的Postgresql数据库,但是竟然还不支持日志功能,导致我们公司在过等级保护时这个成了丢分项,而MySQL的各种功能在云服务器上支持都相当齐全了,阿里自己用的最多的也是MySQL,各种解决方案都有。
所以如果是自建数据库,两种都可以,如果是云数据库,建议还是选MySQL。
再补充一点,现在用Postgres的还是少,许多程序员都不知道,当初给我们公司做等保三级审核的都不知道,大多数人还是对mysql的认知度更高。
看你做什么了,目前在国内比较流行的还是mysql,有大量开源代码可供参考使用,有大量的教程文档社区,简单易学,常见的虚拟主机什么的都给提供,性能功能各方面都不错,如果个人网站使用基本没啥问题,Postgretsql属于典型的学院派,性能好,基本功能全,稳定性高,目前一些企业级的系统用的越来越多,单机的话各方面都比mysql强点,主要缺点还是一开始没有流行起来,学习难度比较高,资料少,而且集群的话貌似做的不太好,一般人要是还是用mysql,有精力的话研究下postgretsql也不错!
sqlserver2008和mysql区别?
1. MySQL支持enum和set类型,SQL Server不支持;
2. MySQL不支持nchar、nvarchar、ntext类型;
3. MySQL数据库的递增语句是AUTO_INCREMENT,而MS SQL是identity(1,1);
4. MS SQL默认到处表创建语句的默认值表示是((0)),而在MySQL里面是不允许带两括号的;
5. MySQL需要为表指定存储类型;
6. MS SQL识别符是[],[type]表示他区别于关键字,但是MySQL却是 `,也就是按键1左边的那个符号;
7. MS SQL支持getdate()方法获取当前时间日期,但是MySQL里面可以分日期类型和时间类型,获取当前日期是cur_date(),当前完整时间是 now()函数;
8. MS SQL不支持replace into语句,但是在最新的SQL Server 2008里面,也支持merge语法;
9. MySQL数据库支持insert into table1 set t1 = ‘’, t2 = ‘’ ,但是MS SQL不支持这样写;
10. MySQL支持insert into tabl1 values (1,1), (1,1), (1,1), (1,1), (1,1), (1,1), (1,1)
11. MS SQL不支持limit语句,是非常遗憾的,只能用top 取代limt 0,N,row_number() over()函数取代limit N,M;

