我正在为即将推出的网络应用程序进行数据库设计,如果这种设计对于一个Web应用程序来说很有效,那么我很想在当前的网络应用程序中大量使用mysql.
1个DB
在DB中,数百万个表用于每个用户的功能,并且在每个表中,可能有数百万行.
虽然这个设计很有活力并且很好地扩展,但我想知道两件事.
任何帮助表示赞赏.
我使用Symfony 2和Doctrine作为ORM Framework.我正在寻找保存对数据库字段所做更改的最佳方法.我将有大约100个表,每个表有大约50个字段和几千行.现在我想保存对字段所做的所有更改.
我想到的可能性:Doctrine扩展"Loggable" - 保存不同表中的更改,但不知道它是否可以承受这么多的条目.
每个表的MySQL触发器,用于保存新表中的更改?
但保存更改的最佳做法是什么?
我正在建立系统来分析有关证券交易价格的大量金融数据.这方面的一个重大挑战是确定数据将使用哪种存储方法,因为数据将在10的TB级中.将对数据进行许多查询,例如取平均值,计算标准偏差以及按多个列过滤的总和,例如价格,时间,数量等.连接语句不是必需的,但是很高兴.
现在,我正在寻找infobright社区版,monetdb和greenplum社区版用于评估目的.到目前为止,它们看起来很棒,但是对于更高级的功能,某些版本中不提供某些功能(使用多个服务器,插入/更新语句等).
您将在这种情况下使用哪些解决方案,并为替代方案提供哪些好处?具有成本效益是一个重要的优点.如果我必须支付数据仓库解决方案,我会,但我宁愿避免它,并尽可能采用开源/社区版路线.
我听说很多应用程序开发人员在数据库处理的竞争条件方面遇到了一些麻烦.一个典型的例子是这样的:
在此示例中,numStock字段应该变为1,但由于用户之间的竞争而将其设置为2.
所以当然可以使用锁,但我想到了另一种处理方法 - 将所有行详细信息作为WHERE标准传递.让我解释...
在上面的示例中,SQL代码可能如下所示:
//选择
SELECT itemID, numStock FROM items WHERE itemID = 45
Run Code Online (Sandbox Code Playgroud)
//更新
UPDATE items SET numStock = 2 WHERE itemID = 45
Run Code Online (Sandbox Code Playgroud)
我想解决这个问题的想法:
//选择
SELECT itemID, numStock FROM items WHERE itemID = 45
Run Code Online (Sandbox Code Playgroud)
//更新
UPDATE items SET numStock = 2 WHERE itemID = 45 AND numStock = 3
Run Code Online (Sandbox Code Playgroud)
因此,查询检查数据是否因为选择了数据而发生了变化.所以我的问题是:(1)这[总是]会起作用吗?(2)与数据库锁定机制(例如,MySQL事务)相比,这是一个更好的选择吗?
谢谢你的时间.
我想知道NoSQL是否适合这种情况:
输入是来自多个来源的小时库存数据(sku,数量,价格等)。旧版本将被删除。所以我们不会超过1个mio。数据集在不久的将来,并且不会像数据仓库中那样出现任何商业智能查询。但是将存在汇总,至少对于一组商品的最低价格而言,如果一组最低价格的商品被售罄,则必须进行汇总。除了频繁地进行这些批量写入外,还会随时减少文章数量的单次减少。
该数据库将成为服务的一部分,该服务需要通过REST快速响应请求。因此,需要进行某种缓存。不需要强烈的一致性,但要持久。
进一步的愿望清单:
MongoDB及其聚合框架似乎很有希望。你能想到替代品吗?(我不坚持使用NoSQL!)
我一直在玩使用图表来分析大数据.它的工作非常好,非常有趣,但我想知道该做什么,因为数据变得越来越大?
让我知道是否有任何其他解决方案,但我想尝试Hbase,因为它横向扩展,我可以让hadoop在图上运行分析(我的大部分代码已经用java编写),但我不确定如何构建一个nosql数据库上的图形?我知道每个节点都可以是数据库中的一个条目,但我不确定如何建模边缘并为它们添加属性(如节点名称,属性,pagerank,边缘权重等).
看看hbase/hadoop是如何在大表和map之后建模的,我怀疑有一种方法可以做到这一点但不确定如何.有什么建议?
此外,这是否有意义我正在尝试做什么?或者它是否有更好的大数据图解决方案?
我对基本的MySQL"好",但这是"我的头脑"!
目标:
数据库表是巨大的,速度是一个问题.
没有MyISAM是inoDB会更快吗?每个数据库都在一个唯一的表中.
我被赋予了这个作为我正在尝试做的事情的起点:
CREATE TABLE `table` LIKE LiveTable
LOAD DATA INFILE..... INTO `table`
UPDATE `table` SET delete=1; -- Set the delete field to true because it will not have been updated
UPDATE `table` INNER JOIN`table`ON `LiveTable.ID`=`table.ID`
SET LiveTable.Col1=table.Col1, LiveTable.Col2=table.Col2….. delete=0
INSERT INTO LiveTable(ID,Col1,Col2,… delete=0)
SELECT ID,Col1,Col2,...FROM `table`
LEFT JOIN LiveTable
ON table.ID = LiveTable.ID
WHERE LiveTable.ID IS NULL
DELETE FROM LiveTableWHERE delete = 0
EMPTY TABLE `table`
Run Code Online (Sandbox Code Playgroud)
> CREATE TABLE `product_table` (
> `programname` …Run Code Online (Sandbox Code Playgroud) 我正在使用moodle并且我更改了我的网站的位置,但我遇到了这个错误.
我的config.php是:
<?php /// Moodle Configuration File
unset($CFG);
$CFG->dbtype = 'mysql';
$CFG->dbhost = 'localhost';
$CFG->dbname = 'lightsys_test';
$CFG->dbuser = 'lightsys_test';
$CFG->dbpass = '123456a';
$CFG->dbpersist = false;
$CFG->prefix = 'mdl_';
$CFG->wwwroot = 'http://www.lightsystem.ir/aya/moodle';
$CFG->dirroot = '/home/lightsys/public_html/aya/moodle';
$CFG->dataroot = '/home/lightsys/public_html/aya/moodledata';
$CFG->admin = 'admin';
$CFG->directorypermissions = 00777; // try 02777 on a server in Safe Mode
require_once("$CFG->dirroot/lib/setup.php");
// MAKE SURE WHEN YOU EDIT THIS FILE THAT THERE ARE NO SPACES, BLANK LINES,
// RETURNS, OR ANYTHING ELSE AFTER THE TWO CHARACTERS …Run Code Online (Sandbox Code Playgroud) 我找到了几个使用datamapper的例子,并且能够让它们运行起来.所有这些示例都是针对sqlite数据库的.我正在尝试将datamapper与postgresql一起使用.
我将datamapper中的调用从sqlite3更改为postgres,我已经安装了dm-postgres-adapter.但它仍然无效.
还有什么我需要做的?
我收到了错误
将数据类型nvarchar转换为int时出错
码:
ALTER procedure [dbo].[sp_rcdoc]
@regno int,
@appname varchar(50),
@DOI datetime,
@COV varchar(50),
@validtill date,
@imgloc varchar(500),
@ImagNo char(20),
@Purposecode varchar(50),
@FLAG varchar(3)
AS BEGIN
IF NOT EXISTS(SELECT regno FROM tblRCDocuments WHERE regno = @regno)
BEGIN
INSERT INTO tblRCDocuments(regno, appname, DOI, COV, validtill, imgloc, ImagNo, Purposecode, FLAG)
VALUES(@regno, @appname, @DOI, @COV, @validtill, @imgloc, @ImagNo, @Purposecode, @FLAG)
END
Run Code Online (Sandbox Code Playgroud) database ×10
mysql ×3
sql ×2
datamapper ×1
doctrine ×1
graph ×1
graph-theory ×1
greenplum ×1
hbase ×1
infobright ×1
monetdb ×1
mongodb ×1
moodle ×1
mysql-5.1 ×1
mysql5 ×1
nosql ×1
php ×1
postgresql ×1
rdbms ×1
ruby ×1
sql-server ×1
symfony ×1
t-sql ×1