Tag Info

Hot answers tagged

8

Trying to normalize addresses is generally a bad idea. There isn't a lot of value to normalizing addresses. Both of your designs are inappropriate for the vast majority of systems. There are two things you typically do with addresses: Use them to send mail or packages to that location. Use them to do geospatial analysis on that location. Since you ...


7

Refer the the Concepts Guide - Overview of Views for this sort of question: Overview of Views A view is a logical representation of one or more tables. In essence, a view is a stored query. [...] Characteristics of Views Unlike a table, a view is not allocated storage space, nor does a view contain data. Rather, a view is defined by a ...


7

My question is, do you think we should look into upgrading to SQL Server 2014 Enterprise so that we can partition our time sheet tables? No. Absolutely not. On a pocket change server of 8 cores you would be spending ~$50k and be unlikely to see any benefit. I would suggest trying, in this order: Increase the memory allocation to SQL Server. You ...


5

Let's break this question up into a few parts. Q: I need to insert 1mm rows a day. Is that a lot? Not really. 1mm divided by 24 hours divided by 60 minutes divided by 60 seconds gives you about 12 inserts per second. For a rough frame of perspective, it's not unusual to see 1,000 inserts per second in typical commodity servers with no tuning. Granted, ...


3

There are a variety of factors that would cause IT organizations to be cautious about creating databases and giving business users the level of access to those systems that you are, presumably, asking for when you talk about wanting to "play with" the data. First off, since you're in a company that does trading, that implies that there are dozens of laws ...


3

Redundancy does not mean: Columns that have the same data type Columns (or rows) that have the same data value (if this is coincidental) Columns that are foreign keys that link a child table to its parent (including the same data value as FK and PK in the respective tables) Redundancy is not about columns or rows for that matter. Redundancy is about ...


3

You have two options OPTION #1 : Create a RAM Disk RAMDISK_SIZE=32g service mysql stop mkdir /var/tmpfs echo "none /var/tmpfs tmpfs defaults,size=${RAMDISK_SIZE} 1 2" >> /etc/fstab mount -t tmpfs -o size=${RAMDISK_SIZE} none /var/tmpfs cp -R /var/lib/mysql/* /var/tmpfs mv /var/lib/mysql /var/lib/mysql_old ln -s /var/tmpfs /var/lib/mysql chown -R ...


2

You can insert a comment marker in the text itself. This marker is not displayed. As text is being changed, the marker stay embedded in the text itself and moves around as text is being edited. If the paragraph is removed then the comment can be orphaned and garbage collected later. Of course, this has nothing to do with DBs, is just pure text processing. ...


2

I think you are looking for DBs that are designed for analytics. May be you should check these solutions:. some data storage solutions specific to realtime analytics Druid Spark Cassandra Hbase hypertable accumulo reference: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis http://relistan.com/cassandra-vs-mongo/


2

The question is: will it boost the performance of select to split the table into five tables each corresponding to one of the five possible values of z? Yes, you could use partitioning here. Partition elimination will kick in. The partitioning will act as a leading index column. Which brings me to the following point: Just add z as the leading ...


2

You can use hstore for use EAV. hstore is available from pgsql 8.4. If you have installed json you can then use function hstore_to_json(hstore) select hstore_to_json('"a key"=>1, b=>t, c=>null, d=>12345, e=>012345, f=>1.234, g=>2.345e+4') this will output: {"a key": "1", "b": "t", "c": null, "d": "12345", "e": "012345", "f": "1.234", ...


2

circle_share1 does not require much in-depth design thought. circle_share2 requires some actual brain cycles to determine if the primary key will have the desired performance. Rows in circle_share1 will be written to the disk in the exact order they are inserted, thereby making inserts quicker. Rows in circle_share2 may be inserted anywhere in the ...


2

I can speak for Postgres. PostgreSQL is really fast to copy to if you are a super user. Postgresql has a copy to command. Merely save the file as a csv (which can also be opened in excel) and use: COPY table FROM 'fpath' CSV HEADER DELIMITER ';' You can copy anything with COPY (SELECT STATEMENT) TO 'fpath' as well. If you must use excel formats like ...


2

My preference would be something in the middle. Because states/provinces and countries are well established entities that don't change over time you can pull those out into separate tables. However, trying to normalize street and city-level data whilst relying on human input is error-prone at best, and at worst you'll end up with some very poor information ...


2

If it's a data warehouse system you're looking at, you may wish to consider InfiniDB. It's an Open Source columnar storage engine designed for DW type loads - it falls into the NewSQL paradigm as defined by Michael Stonebraker. There's also InfoBright, which is a similar offering. Of course, you may not require any special software at all - vanilla MySQL ...


2

0- CASCADE means to 'replicate' the changes that happens on the 'master' table to the 'details' tables. For simplicity, assume the relation (country, city). Each city[detail] belongs to a country[master], or each city is a child of a country. With cascade, if you delete a country, all cities belong to that country will be deleted. In your case, ...


1

If Users can only be members of one group, you need only store a GroupId in the Users table. If not, the pattern you are looking for is commonly known as a "Join" table, containing only foreign keys and perhaps a generated primary key. If you have primary key UserId (uniquely identifies a user record) for the Users table and GroupId for the Groups table, ...


1

All you need is two tables. 1 for Products and 1 for Attributes. You would then have a one to many relationship from the Products table to the Attributes table. This means that each product can have as many attributes as it needs. Table structure would look something like this. Products Product_Id INT PK Auto Increment ProductCode VARCHAR(255) Attriutes ...


1

You should consider using a real indexed search engine such as elasticsearch with runs on Java, uses a REST interface with json and so is exceedingly easy to program to, is free and open source, with a good community behind it. www.elasticsearch.org You could have it running on the same server as your application as long as you have a decent enough machine ...


1

It's fairly common for IT departments to have these kinds of policies. Locked down systems are so much easier to manage, and most users have no real need for admin rights or a sandbox environment. There's a few common ways to get around it: Ask for a 2nd PC that's not connected to the network, so you can develop on it without threatening anything. Ask for ...


1

MS Access Vs MySQL MS Access works only on Windows whereas MySQL works on almost all platforms. MS Access does not support Partitioning feature whereas MySQL has composite, Range partitioning support. MySQL is opensource so no cost involved. Performance in MySQL is way better than MS Access MS Access database is more suitable for desktop use with a small ...


1

As well as PostgreSQL (which I recommend), you could also look at Firebird (another excellent choice). What is your development environment? If you're replacing spreadsheets, another good option might be Oracle's APEX with Oracle XE. If you do decide to go down the MySQL route, try to avoid non-standard data types like SET and ENUM (porting becomes ...


1

It is not a strange question. I have the same problem every day; how to get things to run faster, faster. We use MS SQL Server 2012 with 512 GB RAM and a SAN at 50TB. We have about ten tables with more than a billion rows, our largest table is 75 billion rows. What really helps is ensuring that the right datatypes are used; no bigints when tinyints will do. ...


1

We use a combination of Oracle GoldenGate and the Java Persistence API (JPA) to do this with Oracle database, but also with DB2, Sybase, Microsoft SQL Server, MySQL, Teradata, etc. The feature is described here: http://docs.oracle.com/middleware/1212/coherence/COHIG/golden_g.htm What GoldenGate does is turn the database transaction log into a filterable ...


1

While I work for a competitor of MongoDB, FatDB, but given your requirements are Java, I would say: Cassandra Google BigTable (not sure of Node.js support) Cloudera (more of a Hadoop platform)


1

Optimal table size would be environment specific. I had an almost exact similar environment. A billing/tracking/logging system was generating 2-3GB of data per day and was already at 1.5TB in 1 table alone. An ETL process fed data in so that was the only 'write', while thousands of users 'read' it. It seems like you need to maximize both writes and ...


1

NoSQL and RDBMS are totally different animals. You should pick the one which suits your data and how you intend to record and access it. Don't pick your style of database system on the grounds of performance. Performance can be managed in a range. If HBase isn't performant at your start up volumes, then maybe you'll just have to work harder to tune it, ...


1

The well known players in the database market have cost free editions (usually called Express Edition) of their products available, e.g. Oracle Database Express Edition, SQL Server Express Edition, DB2 Express-C and probably more. They are usually limited on CPU usage, RAM usage and data volume, but provide the features you need just like their costly ...



Only top voted, non community-wiki answers of a minimum length are eligible